mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
18.08.2014 e9880ffb37cdf3ec13061801d0c81c0dff2f35c2
OPENDJ-1602 (CR-5566) New pluggable storage based backend

Minor code cleanup of VLV indexing:

* remove unused method parameters
* add missing constructor.
2 files modified
60 ■■■■■ changed files
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java 48 ●●●●● patch | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java 12 ●●●● patch | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java
@@ -42,13 +42,10 @@
public class SortValuesSet
{
  private long[] entryIDs;
  private int[] valuesBytesOffsets;
  private byte[] valuesBytes;
  private ByteString key;
  private VLVIndex vlvIndex;
  private final VLVIndex vlvIndex;
  /**
   * Construct an empty sort values set with the given information.
@@ -57,11 +54,7 @@
   */
  public SortValuesSet(VLVIndex vlvIndex)
  {
    this.key = ByteString.empty();
    this.entryIDs = null;
    this.valuesBytes = null;
    this.valuesBytesOffsets = null;
    this.vlvIndex = vlvIndex;
    this(vlvIndex, ByteString.empty(), null, null, null);
  }
  /**
@@ -81,7 +74,7 @@
      return;
    }
    entryIDs = getEncodedIDs(value, 0);
    entryIDs = getEncodedIDs(value);
    int valuesBytesOffset = entryIDs.length * 8 + 4;
    int valuesBytesLength = value.length() - valuesBytesOffset;
    valuesBytes = new byte[valuesBytesLength];
@@ -90,8 +83,15 @@
    this.valuesBytesOffsets = null;
  }
  private SortValuesSet()
  {}
  private SortValuesSet(VLVIndex vlvIndex, ByteString key, long[] entryIDs,
      byte[] valuesBytes, int[] valuesBytesOffsets)
  {
    this.vlvIndex = vlvIndex;
    this.key = key;
    this.entryIDs = entryIDs;
    this.valuesBytes = valuesBytes;
    this.valuesBytesOffsets = valuesBytesOffsets;
  }
  /**
   * Add the given entryID and values from these sort values.
@@ -329,19 +329,12 @@
              valuesBytesOffsets[updatedValuesBytesOffsets.length];
    }
    SortValuesSet splitValuesSet = new SortValuesSet();
    splitValuesSet.entryIDs = splitEntryIDs;
    splitValuesSet.key = this.key;
    splitValuesSet.valuesBytes = splitValuesBytes;
    splitValuesSet.valuesBytesOffsets = splitValuesBytesOffsets;
    splitValuesSet.vlvIndex = this.vlvIndex;
    SortValuesSet splitValuesSet = new SortValuesSet(vlvIndex, key,
        splitEntryIDs, splitValuesBytes, splitValuesBytesOffsets);
    entryIDs = updatedEntryIDs;
    valuesBytes = updatedValuesBytes;
    valuesBytesOffsets = updatedValuesBytesOffsets;
    key = null;
    return splitValuesSet;
  }
@@ -379,13 +372,12 @@
   * Get the size of the provided encoded set.
   *
   * @param bytes The encoded bytes of a SortValuesSet to decode the size from.
   * @param offset The byte offset to start decoding.
   * @return The size of the provided encoded set.
   */
  public static int getEncodedSize(ByteString bytes, int offset)
  public static int getEncodedSize(ByteString bytes)
  {
    int v = 0;
    for (int i = offset; i < offset + 4; i++)
    for (int i = 0; i < 4; i++)
    {
      v <<= 8;
      v |= (bytes.byteAt(i) & 0xFF);
@@ -397,14 +389,12 @@
   * Get the IDs from the provided encoded set.
   *
   * @param bytes The encoded bytes of a SortValuesSet to decode the IDs from.
   * @param offset The byte offset to start decoding.
   * @return The decoded IDs in the provided encoded set.
   */
  public static long[] getEncodedIDs(ByteString bytes, int offset)
  public static long[] getEncodedIDs(ByteString bytes)
  {
    int length = getEncodedSize(bytes, offset) * 8;
    int offset2 = offset + 4;
    ByteString entryIDBytes = bytes.subSequence(offset2, offset2 + length);
    int length = getEncodedSize(bytes) * 8;
    ByteString entryIDBytes = bytes.subSequence(4, 4 + length);
    return JebFormat.entryIDListFromDatabase(entryIDBytes);
  }
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
@@ -230,7 +230,7 @@
    {
      while (cursor.next())
      {
        count.getAndAdd(SortValuesSet.getEncodedSize(cursor.getValue(), 0));
        count.getAndAdd(SortValuesSet.getEncodedSize(cursor.getValue()));
      }
    }
    finally
@@ -790,7 +790,7 @@
            {
              logSearchKeyResult(cursor.getKey());
            }
            long[] IDs = SortValuesSet.getEncodedIDs(cursor.getValue(), 0);
            long[] IDs = SortValuesSet.getEncodedIDs(cursor.getValue());
            for(int i = startPos + selectedPos - cursorCount;
                i < IDs.length && selectedPos < count;
                i++, selectedPos++)
@@ -881,13 +881,13 @@
              if(includedBeforeCount < beforeCount)
              {
                lastIDs = SortValuesSet.getEncodedIDs(cursor.getValue(), 0);
                lastIDs = SortValuesSet.getEncodedIDs(cursor.getValue());
                lastOffset = lastIDs.length - 1;
                targetOffset += lastIDs.length;
              }
              else
              {
                targetOffset += SortValuesSet.getEncodedSize(cursor.getValue(), 0);
                targetOffset += SortValuesSet.getEncodedSize(cursor.getValue());
              }
            }
@@ -920,7 +920,7 @@
                break;
              }
              lastIDs = SortValuesSet.getEncodedIDs(cursor.getValue(), 0);
              lastIDs = SortValuesSet.getEncodedIDs(cursor.getValue());
              lastOffset = 0;
              afterIDCount += lastIDs.length;
            }
@@ -964,7 +964,7 @@
          {
            logSearchKeyResult(cursor.getKey());
          }
          long[] ids = SortValuesSet.getEncodedIDs(cursor.getValue(), 0);
          long[] ids = SortValuesSet.getEncodedIDs(cursor.getValue());
          idSets.add(ids);
          currentCount += ids.length;
        }