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

dugan
16.43.2009 e82cd8602f5a77168ff0af4cc72a3bd6fb7c82db
Fix problem where second phase cache size calculation was too small.
1 files modified
39 ■■■■■ changed files
opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java 39 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -781,9 +781,9 @@
      long finishTime = System.currentTimeMillis();
      long importTime = (finishTime - startTime);
      float rate = 0;
      message = NOTE_JEB_IMPORT_PHASE_STATS.get(importTime,
                        (phaseOneFinishTime - startTime),
                        (phaseTwoFinishTime - phaseTwoTime));
      message = NOTE_JEB_IMPORT_PHASE_STATS.get(importTime/1000,
                        (phaseOneFinishTime - startTime)/1000,
                        (phaseTwoFinishTime - phaseTwoTime)/1000);
      logError(message);
      if (importTime > 0)
        rate = 1000f * reader.getEntriesRead() / importTime;
@@ -931,16 +931,14 @@
  private int getBufferCount(int dbThreads)
  {
    int c = 0;
    int buffers = 0;
    //Count DN buffers first, since they are processed first.
    while(c < DNIndexMgrList.size() && c < dbThreads)
    List<IndexManager> totList = new LinkedList<IndexManager>(DNIndexMgrList);
    totList.addAll(indexMgrList);
    Collections.sort(totList, Collections.reverseOrder());
    for(int i = 0; i < dbThreads; i ++)
    {
      buffers += DNIndexMgrList.get(c++).getBufferList().size();
    }
    while(c < indexMgrList.size() && c < dbThreads)
    {
      buffers += indexMgrList.get(c++).getBufferList().size();
      buffers += totList.get(i).getBufferList().size();
    }
    return buffers;
  }
@@ -2850,7 +2848,7 @@
   *
   *   3. It manages opening and closing the scratch index files.
   */
  private final class IndexManager
  private final class IndexManager implements Comparable<IndexManager>
  {
    private final File file;
    private RandomAccessFile rFile = null;
@@ -2985,6 +2983,23 @@
    {
      return limit;
    }
    public int compareTo(IndexManager mgr)
    {
      if(bufferList.size() == mgr.getBufferList().size())
      {
         return 0;
      }
      else if (bufferList.size() < mgr.getBufferList().size())
      {
        return -1;
      }
      else
      {
        return 1;
      }
    }
  }