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 2010/06/24 12:13:46 UTC
svn commit: r957486 - in /lucene/dev/trunk/lucene/contrib/benchmark/src:
java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java
test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
Author: mikemccand
Date: Thu Jun 24 10:13:45 2010
New Revision: 957486
URL: http://svn.apache.org/viewvc?rev=957486&view=rev
Log:
LUCENE-2512: fix DeleteByPercentTask to work again post flex
Modified:
lucene/dev/trunk/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java
lucene/dev/trunk/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
Modified: lucene/dev/trunk/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java?rev=957486&r1=957485&r2=957486&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java (original)
+++ lucene/dev/trunk/lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java Thu Jun 24 10:13:45 2010
@@ -77,10 +77,15 @@ public class DeleteByPercentTask extends
Bits delDocs = MultiFields.getDeletedDocs(r);
int doc = 0;
while (doc < maxDoc && numDeleted < numToDelete) {
- if (!delDocs.get(doc) && random.nextDouble() <= delRate) {
+ if ((delDocs == null || !delDocs.get(doc)) && random.nextDouble() <= delRate) {
r.deleteDocument(doc);
numDeleted++;
+ if (delDocs == null) {
+ delDocs = MultiFields.getDeletedDocs(r);
+ assert delDocs != null;
+ }
}
+ doc++;
}
}
System.out.println("--> processed (delete) " + numDeleted + " docs");
Modified: lucene/dev/trunk/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java?rev=957486&r1=957485&r2=957486&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java (original)
+++ lucene/dev/trunk/lucene/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java Thu Jun 24 10:13:45 2010
@@ -606,6 +606,40 @@ public class TestPerfTasksLogic extends
}
}
+ public void testDeleteByPercent() throws Exception {
+ // 1. alg definition (required in every "logic" test)
+ String algLines[] = {
+ "# ----- properties ",
+ "content.source=org.apache.lucene.benchmark.byTask.feeds.LineDocSource",
+ "docs.file=" + getReuters20LinesFile(),
+ "ram.flush.mb=-1",
+ "max.buffered=2",
+ "content.source.log.step=3",
+ "doc.term.vector=false",
+ "content.source.forever=false",
+ "directory=RAMDirectory",
+ "doc.stored=false",
+ "doc.tokenized=false",
+ "debug.level=1",
+ "# ----- alg ",
+ "CreateIndex",
+ "{ \"AddDocs\" AddDoc > : * ",
+ "CloseIndex()",
+ "OpenReader(false)",
+ "DeleteByPercent(20)",
+ "CloseReader"
+ };
+
+ // 2. execute the algorithm (required in every "logic" test)
+ Benchmark benchmark = execBenchmark(algLines);
+
+ // 3. test number of docs in the index
+ IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true);
+ int ndocsExpected = 16; // first 20 reuters docs, minus 20%
+ assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs());
+ ir.close();
+ }
+
/**
* Test that we can set merge scheduler".
*/