From 0a91d9588d1abd51602ac6ab27c7fbb280326134 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 19 May 2015 08:19:36 +0000
Subject: [PATCH] Importer.java: Removed DNIndexMgrList which is unnecessarily duplicating indexMgrList. Removed unneeded javadocs.

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java |   81 +++++++++++++---------------------------
 1 files changed, 26 insertions(+), 55 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
index 5bb3005..a52231e 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -133,11 +133,12 @@
    * Shim that allows properly constructing an {@link Importer} without polluting
    * {@link ImportStrategy} and {@link RootContainer} with this importer inner workings.
    */
+  @SuppressWarnings("javadoc")
   static final class StrategyImpl implements ImportStrategy
   {
     private final PluggableBackendCfg backendCfg;
 
-    public StrategyImpl(PluggableBackendCfg backendCfg)
+    StrategyImpl(PluggableBackendCfg backendCfg)
     {
       this.backendCfg = backendCfg;
     }
@@ -258,10 +259,8 @@
    */
   private final Map<IndexKey, BlockingQueue<IndexOutputBuffer>> indexKeyQueueMap = new ConcurrentHashMap<>();
 
-  /** Map of DB containers to index managers. Used to start phase 2. */
+  /** The index managers used to start phase 2. */
   private final List<IndexManager> indexMgrList = new LinkedList<>();
-  /** Map of DB containers to DN-based index managers. Used to start phase 2. */
-  private final List<IndexManager> DNIndexMgrList = new LinkedList<>();
 
   /**
    * Futures used to indicate when the index file writers are done flushing
@@ -301,20 +300,7 @@
   /** Number of phase one buffers. */
   private int phaseOneBufferCount;
 
-  /**
-   * Create a new import job with the specified rebuild index config.
-   *
-   * @param rebuildConfig
-   *          The rebuild index configuration.
-   * @param cfg
-   *          The backend configuration.
-   * @throws InitializationException
-   *           If a problem occurs during initialization.
-   * @throws StorageRuntimeException
-   *           If an error occurred when opening the DB.
-   * @throws ConfigException
-   *           If a problem occurs during initialization.
-   */
+  @SuppressWarnings("javadoc")
   Importer(RootContainer rootContainer, RebuildConfig rebuildConfig, PluggableBackendCfg cfg,
       ServerContext serverContext) throws InitializationException, StorageRuntimeException, ConfigException
   {
@@ -333,20 +319,7 @@
     this.dnCache = null;
   }
 
-  /**
-   * Create a new import job with the specified ldif import config.
-   *
-   * @param importCfg
-   *          The LDIF import configuration.
-   * @param backendCfg
-   *          The backend configuration.
-   * @throws InitializationException
-   *           If a problem occurs during initialization.
-   * @throws ConfigException
-   *           If a problem occurs reading the configuration.
-   * @throws StorageRuntimeException
-   *           If an error occurred when opening the DB.
-   */
+  @SuppressWarnings("javadoc")
   Importer(RootContainer rootContainer, LDIFImportConfig importCfg, PluggableBackendCfg backendCfg,
       ServerContext serverContext) throws InitializationException, ConfigException, StorageRuntimeException
   {
@@ -1112,8 +1085,7 @@
     int buffers;
     while (true)
     {
-      final List<IndexManager> allIndexMgrs = new ArrayList<>(DNIndexMgrList);
-      allIndexMgrs.addAll(indexMgrList);
+      final List<IndexManager> allIndexMgrs = new ArrayList<>(indexMgrList);
       Collections.sort(allIndexMgrs, Collections.reverseOrder());
 
       buffers = 0;
@@ -1166,10 +1138,7 @@
     storage.close();
     try (final org.opends.server.backends.pluggable.spi.Importer importer = storage.startImport())
     {
-      List<Future<Void>> futures = new LinkedList<>();
-      submitIndexDBWriteTasks(DNIndexMgrList, importer, dbService, permits, buffers, readAheadSize, futures);
-      submitIndexDBWriteTasks(indexMgrList, importer, dbService, permits, buffers, readAheadSize, futures);
-      getAll(futures);
+      submitIndexDBWriteTasks(indexMgrList, importer, dbService, permits, buffers, readAheadSize);
     }
     finally
     {
@@ -1181,12 +1150,14 @@
 
   private void submitIndexDBWriteTasks(List<IndexManager> indexMgrs,
       org.opends.server.backends.pluggable.spi.Importer importer,
-      ExecutorService dbService, Semaphore permits, int buffers, int readAheadSize, List<Future<Void>> futures)
+      ExecutorService dbService, Semaphore permits, int buffers, int readAheadSize) throws InterruptedException
   {
+    List<IndexDBWriteTask> tasks = new ArrayList<IndexDBWriteTask>(indexMgrs.size());
     for (IndexManager indexMgr : indexMgrs)
     {
-      futures.add(dbService.submit(new IndexDBWriteTask(importer, indexMgr, permits, buffers, readAheadSize)));
+      tasks.add(new IndexDBWriteTask(importer, indexMgr, permits, buffers, readAheadSize));
     }
+    dbService.invokeAll(tasks);
   }
 
   private static <T> void getAll(List<Future<T>> futures) throws InterruptedException, ExecutionException
@@ -1506,6 +1477,7 @@
      *
      * @return true if the import operation can proceed with the provided entry, false otherwise
      */
+    @SuppressWarnings("javadoc")
     boolean dnSanityCheck(WriteableTransaction txn, Entry entry, Suffix suffix)
         throws StorageRuntimeException, InterruptedException
     {
@@ -2015,6 +1987,7 @@
       }
 
       /** Why do we still need this if we are checking parents in the first phase? */
+      @SuppressWarnings("javadoc")
       boolean checkParent(org.opends.server.backends.pluggable.spi.Importer importer, ImportIDSet idSet)
           throws StorageRuntimeException
       {
@@ -2457,14 +2430,7 @@
         }
         boolean isDN2ID = DN2ID_INDEX_NAME.equals(indexKey.getIndexID());
         IndexManager indexMgr = new IndexManager(indexKey.getName(), isDN2ID, indexKey.getEntryLimit());
-        if (isDN2ID)
-        {
-          DNIndexMgrList.add(indexMgr);
-        }
-        else
-        {
-          indexMgrList.add(indexMgr);
-        }
+        indexMgrList.add(indexMgr);
         BlockingQueue<IndexOutputBuffer> newQueue = new ArrayBlockingQueue<>(phaseOneBufferCount);
         ScratchFileWriterTask indexWriter = new ScratchFileWriterTask(newQueue, indexMgr);
         scratchFileWriterList.add(indexWriter);
@@ -3281,15 +3247,20 @@
 
       previousTime = latestTime;
 
-      //Do DN index managers first.
-      for (IndexManager indexMgrDN : DNIndexMgrList)
-      {
-        indexMgrDN.printStats(deltaTime);
-      }
-      //Do non-DN index managers.
+      // DN index managers first.
+      printStats(deltaTime, true);
+      // non-DN index managers second
+      printStats(deltaTime, false);
+    }
+
+    private void printStats(long deltaTime, boolean dn2id)
+    {
       for (IndexManager indexMgr : indexMgrList)
       {
-        indexMgr.printStats(deltaTime);
+        if (dn2id == indexMgr.isDN2ID())
+        {
+          indexMgr.printStats(deltaTime);
+        }
       }
     }
   }

--
Gitblit v1.10.0