You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2011/11/22 09:36:37 UTC

svn commit: r1204857 - in /lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src: java/org/apache/lucene/benchmark/byTask/ java/org/apache/lucene/benchmark/byTask/feeds/ test/org/apache/lucene/benchmark/byTask/feeds/

Author: shaie
Date: Tue Nov 22 08:36:36 2011
New Revision: 1204857

URL: http://svn.apache.org/viewvc?rev=1204857&view=rev
Log:
LUCENE-3583: more safety changes to benchmark

Modified:
    lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/PerfRunData.java
    lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java
    lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java
    lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/LineDocSourceTest.java

Modified: lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/PerfRunData.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/PerfRunData.java?rev=1204857&r1=1204856&r2=1204857&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/PerfRunData.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/PerfRunData.java Tue Nov 22 08:36:36 2011
@@ -17,6 +17,7 @@ package org.apache.lucene.benchmark.byTa
  * limitations under the License.
  */
 
+import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
@@ -66,7 +67,7 @@ import org.apache.lucene.util.IOUtils;
  *  <li><b>taxonomy.directory</b>=&lt;type of directory for taxonomy index| Default: RAMDirectory&gt;
  * </ul>
  */
-public class PerfRunData {
+public class PerfRunData implements Closeable {
 
   private Points points;
   
@@ -123,6 +124,12 @@ public class PerfRunData {
       System.out.println(getQueryMaker(new SearchTask(this)).printQueries());
     }
   }
+  
+  public void close() throws IOException {
+    IOUtils.close(indexWriter, indexReader, indexSearcher, directory, 
+                  taxonomyWriter, taxonomyReader, taxonomyDir, 
+                  docMaker, facetSource);
+  }
 
   // clean old stuff, reopen 
   public void reinit(boolean eraseIndex) throws Exception {

Modified: lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java?rev=1204857&r1=1204856&r2=1204857&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java Tue Nov 22 08:36:36 2011
@@ -17,6 +17,7 @@ package org.apache.lucene.benchmark.byTa
  * limitations under the License.
  */
 
+import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -46,7 +47,7 @@ import org.apache.lucene.benchmark.byTas
  * logStep is not 0 (<b>default=0</b>).
  * </ul>
  */
-public abstract class ContentItemsSource {
+public abstract class ContentItemsSource implements Closeable {
   
   private long bytesCount;
   private long totalBytesCount;

Modified: lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java?rev=1204857&r1=1204856&r2=1204857&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java Tue Nov 22 08:36:36 2011
@@ -17,6 +17,7 @@ package org.apache.lucene.benchmark.byTa
  * limitations under the License.
  */
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
@@ -75,7 +76,7 @@ import org.apache.lucene.document.Field.
  * {@link DocData#getProps()} will be indexed. (default <b>false</b>).
  * </ul>
  */
-public class DocMaker {
+public class DocMaker implements Closeable {
 
   private static class LeftOver {
     public LeftOver() {}

Modified: lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/LineDocSourceTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/LineDocSourceTest.java?rev=1204857&r1=1204856&r2=1204857&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/LineDocSourceTest.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/LineDocSourceTest.java Tue Nov 22 08:36:36 2011
@@ -42,6 +42,7 @@ 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.IOUtils;
 
 /** Tests the functionality of {@link LineDocSource}. */
 public class LineDocSourceTest extends BenchmarkTestCase {
@@ -110,53 +111,58 @@ public class LineDocSourceTest extends B
     doIndexAndSearchTestWithRepeats(file, lineParserClass, 4, storedField); // 3 extra repetitions
   }
   
-  private void doIndexAndSearchTestWithRepeats(File file, 
-      Class<? extends LineParser> lineParserClass, int numAdds, String storedField) throws Exception {
-
-    Properties props = new Properties();
-    
-    // LineDocSource specific settings.
-    props.setProperty("docs.file", file.getAbsolutePath());
-    if (lineParserClass != null) {
-      props.setProperty("line.parser", lineParserClass.getName());
-    }
-    
-    // Indexing configuration.
-    props.setProperty("analyzer", WhitespaceAnalyzer.class.getName());
-    props.setProperty("content.source", LineDocSource.class.getName());
-    props.setProperty("directory", "RAMDirectory");
-    props.setProperty("doc.stored", "true");
-    props.setProperty("doc.index.props", "true");
-    
-    // Create PerfRunData
-    Config config = new Config(props);
-    PerfRunData runData = new PerfRunData(config);
-
-    TaskSequence tasks = new TaskSequence(runData, "testBzip2", null, false);
-    tasks.addTask(new CreateIndexTask(runData));
-    for (int i=0; i<numAdds; i++) {
-      tasks.addTask(new AddDocTask(runData));
-    }
-    tasks.addTask(new CloseIndexTask(runData));
-    tasks.doLogic();
-    tasks.close();
-    
-    IndexReader r = runData.getIndexReader();
-    if (r == null) {
-      r = IndexReader.open(runData.getDirectory(), true);
-    }
-    IndexSearcher searcher = new IndexSearcher(r);
-    TopDocs td = searcher.search(new TermQuery(new Term("body", "body")), 10);
-    assertEquals(numAdds, td.totalHits);
-    assertNotNull(td.scoreDocs[0]);
-    
-    if (storedField==null) {
-      storedField = DocMaker.BODY_FIELD; // added to all docs and satisfies field-name == value
+  private void doIndexAndSearchTestWithRepeats(File file,
+      Class<? extends LineParser> lineParserClass, int numAdds,
+      String storedField) throws Exception {
+
+    IndexReader reader = null;
+    IndexSearcher searcher = null;
+    PerfRunData runData = null;
+    try {
+      Properties props = new Properties();
+      
+      // LineDocSource specific settings.
+      props.setProperty("docs.file", file.getAbsolutePath());
+      if (lineParserClass != null) {
+        props.setProperty("line.parser", lineParserClass.getName());
+      }
+      
+      // Indexing configuration.
+      props.setProperty("analyzer", WhitespaceAnalyzer.class.getName());
+      props.setProperty("content.source", LineDocSource.class.getName());
+      props.setProperty("directory", "RAMDirectory");
+      props.setProperty("doc.stored", "true");
+      props.setProperty("doc.index.props", "true");
+      
+      // Create PerfRunData
+      Config config = new Config(props);
+      runData = new PerfRunData(config);
+
+      TaskSequence tasks = new TaskSequence(runData, "testBzip2", null, false);
+      tasks.addTask(new CreateIndexTask(runData));
+      for (int i=0; i<numAdds; i++) {
+        tasks.addTask(new AddDocTask(runData));
+      }
+      tasks.addTask(new CloseIndexTask(runData));
+      try {
+        tasks.doLogic();
+      } finally {
+        tasks.close();
+      }
+      
+      reader = IndexReader.open(runData.getDirectory(), true);
+      searcher = new IndexSearcher(reader);
+      TopDocs td = searcher.search(new TermQuery(new Term("body", "body")), 10);
+      assertEquals(numAdds, td.totalHits);
+      assertNotNull(td.scoreDocs[0]);
+      
+      if (storedField==null) {
+        storedField = DocMaker.BODY_FIELD; // added to all docs and satisfies field-name == value
+      }
+      assertEquals("Wrong field value", storedField, searcher.doc(0).get(storedField));
+    } finally {
+      IOUtils.close(searcher, reader, runData);
     }
-    assertEquals("Wrong field value", storedField, searcher.doc(0).get(storedField));
-
-    searcher.close();
-    r.close();
   }
   
   /* Tests LineDocSource with a bzip2 input stream. */