From ce1626b90b749055e28fdfa68ed3ae6de305a64f Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 18 Dec 2014 21:16:52 +0000
Subject: [PATCH] OPENDJ-1602 (CR-5566) New pluggable storage based backend
---
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java | 63 +------------------------------
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java | 14 +++---
2 files changed, 9 insertions(+), 68 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java
index 4f93ac0..2efd1e6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java
@@ -57,8 +57,8 @@
new LinkedHashMap<Index, TreeMap<ByteString, BufferedIndexValues>>();
/** The buffered records stored as a set of buffered VLV values for each index. */
- private final LinkedHashMap<VLVIndex, BufferedVLVValues> bufferedVLVIndexes =
- new LinkedHashMap<VLVIndex, BufferedVLVValues>();
+ private final LinkedHashMap<VLVIndex, BufferedVLVIndexValues> bufferedVLVIndexes =
+ new LinkedHashMap<VLVIndex, BufferedVLVIndexValues>();
/** A simple class representing a pair of added and deleted indexed IDs. */
static class BufferedIndexValues
@@ -114,7 +114,7 @@
}
/** A simple class representing a pair of added and deleted VLV values. */
- static class BufferedVLVValues
+ static class BufferedVLVIndexValues
{
private TreeSet<SortValues> addedValues;
private TreeSet<SortValues> deletedValues;
@@ -182,12 +182,12 @@
* @return The buffered VLV values or <code>null</code> if there are
* no buffered VLV values for the specified VLV index.
*/
- public BufferedVLVValues getVLVIndex(VLVIndex vlvIndex)
+ BufferedVLVIndexValues getBufferedVLVIndexValues(VLVIndex vlvIndex)
{
- BufferedVLVValues bufferedValues = bufferedVLVIndexes.get(vlvIndex);
+ BufferedVLVIndexValues bufferedValues = bufferedVLVIndexes.get(vlvIndex);
if (bufferedValues == null)
{
- bufferedValues = new BufferedVLVValues();
+ bufferedValues = new BufferedVLVIndexValues();
bufferedVLVIndexes.put(vlvIndex, bufferedValues);
}
return bufferedValues;
@@ -245,7 +245,7 @@
for (VLVIndex vlvIndex : entryContainer.getVLVIndexes())
{
- BufferedVLVValues bufferedVLVValues = bufferedVLVIndexes.remove(vlvIndex);
+ BufferedVLVIndexValues bufferedVLVValues = bufferedVLVIndexes.remove(vlvIndex);
if (bufferedVLVValues != null)
{
vlvIndex.updateIndex(txn, bufferedVLVValues.addedValues, bufferedVLVValues.deletedValues);
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
index b7ec6a4..0050067 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
@@ -255,24 +255,6 @@
/**
* Update the vlvIndex for a new entry.
*
- * @param txn A database transaction, or null if none is required.
- * @param entryID The entry ID.
- * @param entry The entry to be indexed.
- * @return True if the entry ID for the entry are added. False if
- * the entry ID already exists.
- * @throws StorageRuntimeException If an error occurs in the JE database.
- * @throws DirectoryException If a Directory Server error occurs.
- */
- public boolean addEntry(WriteableStorage txn, EntryID entryID, Entry entry)
- throws StorageRuntimeException, DirectoryException
- {
- return shouldInclude(entry)
- && insertValues(txn, entryID.longValue(), entry);
- }
-
- /**
- * Update the vlvIndex for a new entry.
- *
* @param buffer The index buffer to buffer the changes.
* @param entryID The entry ID.
* @param entry The entry to be indexed.
@@ -287,7 +269,7 @@
if (shouldInclude(entry))
{
final SortValues sortValues = new SortValues(entryID, entry, sortOrder);
- buffer.getVLVIndex(this).addValues(sortValues);
+ buffer.getBufferedVLVIndexValues(this).addValues(sortValues);
return true;
}
return false;
@@ -309,7 +291,7 @@
if (shouldInclude(entry))
{
final SortValues sortValues = new SortValues(entryID, entry, sortOrder);
- buffer.getVLVIndex(this).deleteValues(sortValues);
+ buffer.getBufferedVLVIndexValues(this).deleteValues(sortValues);
return true;
}
return false;
@@ -476,47 +458,6 @@
return pos >= 0;
}
- private boolean insertValues(WriteableStorage txn, long entryID, Entry entry)
- throws StorageRuntimeException, DirectoryException
- {
- ByteString[] values = getSortValues(entry);
- AttributeType[] types = getSortTypes();
- ByteString key = encodeKey(entryID, values, types);
-
- SortValuesSet sortValuesSet = getSortValuesSet(txn, key, true);
- boolean success = sortValuesSet.add(entryID, values, types);
-
- int newSize = sortValuesSet.size();
- if(newSize >= sortedSetCapacity)
- {
- SortValuesSet splitSortValuesSet = sortValuesSet.split(newSize / 2);
- put(txn, splitSortValuesSet); // splitAfter
- put(txn, sortValuesSet); // after
-
- if(logger.isTraceEnabled())
- {
- logger.trace("SortValuesSet with key %s has reached" +
- " the entry size of %d. Spliting into two sets with " +
- " keys %s and %s.", splitSortValuesSet.getKeySortValues(),
- newSize, sortValuesSet.getKeySortValues(),
- splitSortValuesSet.getKeySortValues());
- }
- }
- else
- {
- ByteString after = sortValuesSet.toByteString();
- put(txn, key, after);
- // TODO: What about phantoms?
- }
-
- if(success)
- {
- count.getAndIncrement();
- }
-
- return success;
- }
-
private void put(WriteableStorage txn, SortValuesSet set) throws DirectoryException
{
put(txn, set.getKeyBytes(), set.toByteString());
--
Gitblit v1.10.0