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);
         }


Reply via email to