You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/09/15 07:22:34 UTC

svn commit: r1760880 - /jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java

Author: chetanm
Date: Thu Sep 15 07:22:34 2016
New Revision: 1760880

URL: http://svn.apache.org/viewvc?rev=1760880&view=rev
Log:
OAK-4412 - Lucene hybrid index

Instead of holding the reference to previous reader upon creation obtain it every time. This is required as previous NRTIndex might remain in use while new NRTIndex is getting created (IndexTracker would first open new IndexNode and then close older one). So to ensure we do not miss out on any indexed content refetch the old index everytime.

if the previous index is not written to this should be cheap as same reader would be returned

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java?rev=1760880&r1=1760879&r2=1760880&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java Thu Sep 15 07:22:34 2016
@@ -63,8 +63,8 @@ public class NRTIndex implements Closeab
 
     private final IndexDefinition definition;
     private final IndexCopier indexCopier;
-    private final LuceneIndexReader previousReader;
     private final IndexUpdateListener refreshPolicy;
+    private final NRTIndex previous;
 
     private IndexWriter indexWriter;
     private NRTIndexWriter nrtIndexWriter;
@@ -79,7 +79,7 @@ public class NRTIndex implements Closeab
         this.definition = definition;
         this.indexCopier = indexCopier;
         this.refreshPolicy = refreshPolicy;
-        this.previousReader = previous != null ? previous.getPrimaryReader() : null;
+        this.previous = previous;
     }
 
     @CheckForNull
@@ -115,6 +115,7 @@ public class NRTIndex implements Closeab
         }
 
         //Old reader should be added later
+        LuceneIndexReader previousReader = previous != null ? previous.getPrimaryReader() : null;
         if (previousReader != null) {
             newReaders.add(previousReader);
         }