You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/05/17 20:00:23 UTC

svn commit: r1104440 - in /lucene/dev/branches/branch_3x/lucene: contrib/ contrib/misc/src/java/org/apache/lucene/store/ contrib/misc/src/test/org/apache/lucene/store/ src/java/org/apache/lucene/index/

Author: mikemccand
Date: Tue May 17 18:00:22 2011
New Revision: 1104440

URL: http://svn.apache.org/viewvc?rev=1104440&view=rev
Log:
LUCENE-3092: add NRTCachingDirectory, to cache small segments written when frequently opening NRT readers

Added:
    lucene/dev/branches/branch_3x/lucene/contrib/misc/src/java/org/apache/lucene/store/NRTCachingDirectory.java
      - copied unchanged from r1104432, lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/store/NRTCachingDirectory.java
    lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/
      - copied from r1104432, lucene/dev/trunk/lucene/contrib/misc/src/test/org/apache/lucene/store/
    lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
      - copied, changed from r1104432, lucene/dev/trunk/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
Modified:
    lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
    lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/MergePolicy.java

Modified: lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt?rev=1104440&r1=1104439&r2=1104440&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt Tue May 17 18:00:22 2011
@@ -41,6 +41,11 @@ New Features
    (but in unspecified order).  (Martijn van Groningen via Mike
    McCandless)
 
+ * LUCENE-3092: Added NRTCachingDirectory in contrib/misc, which
+   caches small segments in RAM.  This is useful, in the near-real-time
+   case where the indexing rate is lowish but the reopen rate is
+   highish, to take load off the IO system.  (Mike McCandless)
+
 Optimizations
 
  * LUCENE-3040: Switch all analysis consumers (highlighter, morelikethis, memory, ...)

Copied: lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java (from r1104432, lucene/dev/trunk/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java?p2=lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java&p1=lucene/dev/trunk/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java&r1=1104432&r2=1104440&rev=1104440&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java Tue May 17 18:00:22 2011
@@ -32,7 +32,6 @@ import org.apache.lucene.index.Term;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LineFileDocs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.Version;
@@ -54,11 +53,11 @@ public class TestNRTCachingDirectory ext
       System.out.println("TEST: numDocs=" + numDocs);
     }
 
-    final List<BytesRef> ids = new ArrayList<BytesRef>();
+    final List<String> ids = new ArrayList<String>();
     IndexReader r = null;
     for(int docCount=0;docCount<numDocs;docCount++) {
       final Document doc = docs.nextDoc();
-      ids.add(new BytesRef(doc.get("docid")));
+      ids.add(new String(doc.get("docid")));
       w.addDocument(doc);
       if (random.nextInt(20) == 17) {
         if (r == null) {
@@ -93,8 +92,8 @@ public class TestNRTCachingDirectory ext
     assertEquals(0, cachedFiles.length);
     
     r = IndexReader.open(dir);
-    for(BytesRef id : ids) {
-      assertEquals(1, r.docFreq("docid", id));
+    for(String id : ids) {
+      assertEquals(1, r.docFreq(new Term("docid", id)));
     }
     r.close();
     cachedDir.close();

Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/MergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/MergePolicy.java?rev=1104440&r1=1104439&r2=1104440&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/MergePolicy.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/MergePolicy.java Tue May 17 18:00:22 2011
@@ -72,7 +72,7 @@ public abstract class MergePolicy implem
     long mergeGen;                  // used by IndexWriter
     boolean isExternal;             // used by IndexWriter
     int maxNumSegmentsOptimize;     // used by IndexWriter
-    long estimatedMergeBytes;       // used by IndexWriter
+    public long estimatedMergeBytes;       // used by IndexWriter
     List<SegmentReader> readers;        // used by IndexWriter
     List<SegmentReader> readerClones;   // used by IndexWriter
     public final List<SegmentInfo> segments;