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

dugan
04.31.2008 3a3e25cd66f19b89dec18605635c61cb2ff0d2ee
Performance improvement for when substring indexes move from defined to undefined.
4 files modified
34 ■■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java 11 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java 5 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java 9 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java 9 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java
@@ -147,11 +147,18 @@
        KeyHashElement curElem = iter.next();
        //Never flush undefined elements.
        if(curElem.isDefined()) {
          int oldSize = curElem.getMemorySize();
          Index index = curElem.getIndex();
          index.insert(null, new DatabaseEntry(curElem.getKey()),
                  curElem.getIDSet());
          memoryUsage -= TREEMAP_ENTRY_OVERHEAD + curElem.getMemorySize();
          iter.remove();
          if(curElem.isDefined()) {
             memoryUsage -= TREEMAP_ENTRY_OVERHEAD + curElem.getMemorySize();
             iter.remove();
          } else {
            //Went undefined don't remove the element, just substract the
            //memory size difference.
            memoryUsage -= (oldSize - curElem.getMemorySize());
          }
        }
      } else {
        //Wrapped around, start at the first element.
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java
@@ -80,4 +80,9 @@
   */
  public boolean merge(byte[] dbBytes, ImportIDSet bufImportIDSet,
                       int entryLimit);
  /**
   * Set the import ID set to the undefined state.
   */
  public void setUndefined();
}
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java
@@ -79,6 +79,14 @@
  }
  /**
   * {@inheritDoc}
   */
  public void setUndefined() {
    array = null;
    isDefined = false;
  }
  /**
   * {@inheritDoc}
@@ -110,6 +118,7 @@
        isDefined=false;
        incrLimitCount=true;
        count = 0;
        importIdSet.setUndefined();
      } else {
        count = array.length;
        addAll((IntegerImportIDSet) importIdSet);
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
@@ -91,6 +91,14 @@
    return isDefined;
  }
  /**
   * {@inheritDoc}
   */
  public void setUndefined() {
    array = null;
    isDefined = false;
  }
  /**
   * {@inheritDoc}
@@ -121,6 +129,7 @@
      if(array.length + importIdSet.size() > limit) {
          isDefined=false;
          incrLimitCount=true;
          importIdSet.setUndefined();
      } else {
        count = array.length;
        addAll((LongImportIDSet) importIdSet);