You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2009/03/20 13:27:01 UTC

svn commit: r756429 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene: CachingIndexReader.java IndexMerger.java MultiIndex.java

Author: mreutegg
Date: Fri Mar 20 12:27:01 2009
New Revision: 756429

URL: http://svn.apache.org/viewvc?rev=756429&view=rev
Log:
JCR-2027: Remove background initialization of hierarchy cache

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexMerger.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java?rev=756429&r1=756428&r2=756429&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java Fri Mar 20 12:27:01 2009
@@ -33,10 +33,6 @@
 import java.util.Iterator;
 import java.text.NumberFormat;
 
-import EDU.oswego.cs.dl.util.concurrent.Executor;
-import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
-import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
-
 /**
  * Implements an <code>IndexReader</code> that maintains caches to resolve
  * {@link #getParent(int, BitSet)} calls efficiently.
@@ -50,17 +46,6 @@
     private static final Logger log = LoggerFactory.getLogger(CachingIndexReader.class);
 
     /**
-     * The single thread of this executor initializes the
-     * {@link #parents} when background initialization is requested.
-     */
-    private static final Executor SERIAL_EXECUTOR = new PooledExecutor(
-            new LinkedQueue(), 1) {
-        {
-            setKeepAliveTime(500);
-        }
-    };
-
-    /**
      * The current value of the global creation tick counter.
      */
     private static long currentTick;
@@ -95,8 +80,7 @@
      * @param cache     a document number cache, or <code>null</code> if not
      *                  available to this reader.
      * @param initCache if the {@link #parents} cache should be initialized
-     *                  when this index reader is constructed. Otherwise
-     *                  initialization happens in a background thread.
+     *                  when this index reader is constructed.
      * @throws IOException if an error occurs while reading from the index.
      */
     CachingIndexReader(IndexReader delegatee,
@@ -109,12 +93,6 @@
         this.cacheInitializer = new CacheInitializer(delegatee);
         if (initCache) {
             cacheInitializer.run();
-        } else {
-            try {
-                SERIAL_EXECUTOR.execute(cacheInitializer);
-            } catch (InterruptedException e) {
-                // ignore
-            }
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexMerger.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexMerger.java?rev=756429&r1=756428&r2=756429&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexMerger.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexMerger.java Fri Mar 20 12:27:01 2009
@@ -302,12 +302,6 @@
                             docCount += readers[i].numDocs();
                         }
                         log.info("merged " + docCount + " documents in " + time + " ms into " + index.getName() + ".");
-
-                        // force initializing of caches
-                        time = System.currentTimeMillis();
-                        index.getReadOnlyIndexReader(true).release();
-                        time = System.currentTimeMillis() - time;
-                        log.debug("reader obtained in {} ms", new Long(time));
                     } finally {
                         for (int i = 0; i < readers.length; i++) {
                             try {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java?rev=756429&r1=756428&r2=756429&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java Fri Mar 20 12:27:01 2009
@@ -622,6 +622,14 @@
                         Collection deleted)
             throws IOException {
 
+        if (handler.isInitializeHierarchyCache()) {
+            // force initializing of caches
+            long time = System.currentTimeMillis();
+            index.getReadOnlyIndexReader(true).release();
+            time = System.currentTimeMillis() - time;
+            log.debug("hierarchy cache initialized in {} ms", new Long(time));
+        }
+
         synchronized (this) {
             synchronized (updateMonitor) {
                 updateInProgress = true;
@@ -690,8 +698,6 @@
      *
      * @param initCache when set <code>true</code> the hierarchy cache is
      *                  completely initialized before this call returns.
-     *                  Otherwise the cache is initialized in a background
-     *                  thread.
      * @return an <code>IndexReader</code>.
      * @throws IOException if an error occurs constructing the <code>IndexReader</code>.
      */