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/11/18 18:27:05 UTC

svn commit: r1203756 - in /lucene/dev/trunk: lucene/ lucene/contrib/misc/src/java/org/apache/lucene/index/ lucene/src/java/org/apache/lucene/index/ lucene/src/test-framework/java/org/apache/lucene/index/ lucene/src/test-framework/java/org/apache/lucene...

Author: mikemccand
Date: Fri Nov 18 17:27:04 2011
New Revision: 1203756

URL: http://svn.apache.org/viewvc?rev=1203756&view=rev
Log:
LUCENE-3577: rename IW.expungeDeletes -> IW.forceMergeDeletes

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/index/BalancedSegmentMergePolicy.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/LogMergePolicy.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MergePolicy.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NoMergePolicy.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/TieredMergePolicy.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
    lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/MockRandomMergePolicy.java
    lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java
    lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/LuceneTestCase.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Fri Nov 18 17:27:04 2011
@@ -749,6 +749,12 @@ API Changes
 * LUCENE-3571: Deprecate IndexSearcher(Directory). Use the constructors
   that take IndexReader instead.  (Robert Muir)
 
+* LUCENE-3577: Rename IndexWriter.expungeDeletes to forceMergeDeletes,
+  and revamped the javadocs, to discourage
+  use of this method since it is horribly costly and rarely
+  justified.  MergePolicy.findMergesToExpungeDeletes was renamed to
+  findForcedDeletesMerges. (Robert Muir, Mike McCandless)
+
 New Features
 
 * LUCENE-3448: Added FixedBitSet.and(other/DISI), andNot(other/DISI).

Modified: lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/index/BalancedSegmentMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/index/BalancedSegmentMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/index/BalancedSegmentMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/index/BalancedSegmentMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -243,7 +243,7 @@ public class BalancedSegmentMergePolicy 
   }
   
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(SegmentInfos infos)
+  public MergeSpecification findForcedDeletesMerges(SegmentInfos infos)
     throws CorruptIndexException, IOException {
     final int numSegs = infos.size();
     final int numLargeSegs = (numSegs < _numLargeSegments ? numSegs : _numLargeSegments);
@@ -254,7 +254,7 @@ public class BalancedSegmentMergePolicy 
       // it does not clone all metadata, but LogMerge does not need it
       final SegmentInfos smallSegments = new SegmentInfos();
       smallSegments.rollbackSegmentInfos(infos.asList().subList(numLargeSegs, numSegs));
-      spec = super.findMergesToExpungeDeletes(smallSegments);
+      spec = super.findForcedDeletesMerges(smallSegments);
     }
     
     if(spec == null) spec = new MergeSpecification();

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java Fri Nov 18 17:27:04 2011
@@ -1732,7 +1732,7 @@ public class IndexWriter implements Clos
     return false;
   }
 
-  /** Just like {@link #expungeDeletes()}, except you can
+  /** Just like {@link #forceMergeDeletes()}, except you can
    *  specify whether the call should block until the
    *  operation completes.  This is only meaningful with a
    *  {@link MergeScheduler} that is able to run merges in
@@ -1747,19 +1747,19 @@ public class IndexWriter implements Clos
    * then any thread still running this method might hit a
    * {@link MergePolicy.MergeAbortedException}.
    */
-  public void expungeDeletes(boolean doWait)
+  public void forceMergeDeletes(boolean doWait)
     throws CorruptIndexException, IOException {
     ensureOpen();
 
     flush(true, true);
 
     if (infoStream != null)
-      infoStream.message("IW", "expungeDeletes: index now " + segString());
+      infoStream.message("IW", "forceMergeDeletes: index now " + segString());
 
     MergePolicy.MergeSpecification spec;
 
     synchronized(this) {
-      spec = mergePolicy.findMergesToExpungeDeletes(segmentInfos);
+      spec = mergePolicy.findForcedDeletesMerges(segmentInfos);
       if (spec != null) {
         final int numMerges = spec.merges.size();
         for(int i=0;i<numMerges;i++)
@@ -1776,7 +1776,7 @@ public class IndexWriter implements Clos
         while(running) {
 
           if (hitOOM) {
-            throw new IllegalStateException("this writer hit an OutOfMemoryError; cannot complete expungeDeletes");
+            throw new IllegalStateException("this writer hit an OutOfMemoryError; cannot complete forceMergeDeletes");
           }
 
           // Check each merge that MergePolicy asked us to
@@ -1808,29 +1808,20 @@ public class IndexWriter implements Clos
   }
 
 
-  /** Requests an expungeDeletes operation, by invoking
-   *  {@link MergePolicy#findMergesToExpungeDeletes}.
-   *  The MergePolicy determines what merges should be done.
-   *  For example, the default {@link TieredMergePolicy}
-   *  will only expunge deletes from a segment if the
-   *  percentage of deleted docs is over 10%.
-   *
-   *  <p>When an index
-   *  has many document deletions (or updates to existing
-   *  documents), it's best to either call forceMerge or
-   *  expungeDeletes to remove all unused data in the index
-   *  associated with the deleted documents.  To see how
+  /**
+   *  Forces merging of all segments that have deleted
+   *  documents.  The actual merges to be executed are
+   *  determined by the {@link MergePolicy}.  For example,
+   *  the default {@link TieredMergePolicy} will only
+   *  pick a segment if the percentage of
+   *  deleted docs is over 10%.
+   *
+   *  <p>This is often a horribly costly operation; rarely
+   *  is it warranted.</p>
+   *
+   *  <p>To see how
    *  many deletions you have pending in your index, call
-   *  {@link IndexReader#numDeletedDocs}
-   *  This saves disk space and memory usage while
-   *  searching.  expungeDeletes should be somewhat faster
-   *  than forceMerge since it does not insist on reducing the
-   *  index to a single segment (though, this depends on the
-   *  {@link MergePolicy}; see {@link
-   *  MergePolicy#findMergesToExpungeDeletes}.). Note that
-   *  this call does not first commit any buffered
-   *  documents, so you must do so yourself if necessary.
-   *  See also {@link #expungeDeletes(boolean)}
+   *  {@link IndexReader#numDeletedDocs}.</p>
    *
    *  <p><b>NOTE</b>: this method first flushes a new
    *  segment (if there are indexed documents), and applies
@@ -1840,8 +1831,8 @@ public class IndexWriter implements Clos
    *  you should immediately close the writer.  See <a
    *  href="#OOME">above</a> for details.</p>
    */
-  public void expungeDeletes() throws CorruptIndexException, IOException {
-    expungeDeletes(true);
+  public void forceMergeDeletes() throws CorruptIndexException, IOException {
+    forceMergeDeletes(true);
   }
 
   /**
@@ -2042,7 +2033,7 @@ public class IndexWriter implements Clos
    * <p>NOTE: this method will forcefully abort all merges
    *    in progress.  If other threads are running {@link
    *    #forceMerge}, {@link #addIndexes(IndexReader[])} or
-   *    {@link #expungeDeletes} methods, they may receive
+   *    {@link #forceMergeDeletes} methods, they may receive
    *    {@link MergePolicy.MergeAbortedException}s.
    */
   public synchronized void deleteAll() throws IOException {

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/LogMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/LogMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/LogMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -417,18 +417,18 @@ public abstract class LogMergePolicy ext
   }
 
   /**
-   * Finds merges necessary to expunge all deletes from the
+   * Finds merges necessary to force-merge all deletes from the
    * index.  We simply merge adjacent segments that have
    * deletes, up to mergeFactor at a time.
    */ 
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(SegmentInfos segmentInfos)
+  public MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos)
       throws CorruptIndexException, IOException {
     final List<SegmentInfo> segments = segmentInfos.asList();
     final int numSegments = segments.size();
 
     if (verbose())
-      message("findMergesToExpungeDeletes: " + numSegments + " segments");
+      message("findForcedDeleteMerges: " + numSegments + " segments");
 
     MergeSpecification spec = new MergeSpecification();
     int firstSegmentWithDeletions = -1;

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MergePolicy.java Fri Nov 18 17:27:04 2011
@@ -319,7 +319,7 @@ public abstract class MergePolicy implem
    * @param segmentInfos
    *          the total set of segments in the index
    */
-  public abstract MergeSpecification findMergesToExpungeDeletes(
+  public abstract MergeSpecification findForcedDeletesMerges(
       SegmentInfos segmentInfos) throws CorruptIndexException, IOException;
 
   /**

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NoMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NoMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NoMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NoMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -63,7 +63,7 @@ public final class NoMergePolicy extends
       throws CorruptIndexException, IOException { return null; }
 
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(SegmentInfos segmentInfos)
+  public MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos)
       throws CorruptIndexException, IOException { return null; }
 
   @Override

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/TieredMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/TieredMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/TieredMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/TieredMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -81,14 +81,14 @@ public class TieredMergePolicy extends M
 
   private long floorSegmentBytes = 2*1024*1024L;
   private double segsPerTier = 10.0;
-  private double expungeDeletesPctAllowed = 10.0;
+  private double forceMergeDeletesPctAllowed = 10.0;
   private boolean useCompoundFile = true;
   private double noCFSRatio = 0.1;
   private double reclaimDeletesWeight = 2.0;
 
   /** Maximum number of segments to be merged at a time
    *  during "normal" merging.  For explicit merging (eg,
-   *  forceMerge or expungeDeletes was called), see {@link
+   *  forceMerge or forceMergeDeletes was called), see {@link
    *  #setMaxMergeAtOnceExplicit}.  Default is 10. */
   public TieredMergePolicy setMaxMergeAtOnce(int v) {
     if (v < 2) {
@@ -107,7 +107,7 @@ public class TieredMergePolicy extends M
   // if user calls IW.maybeMerge "explicitly"
 
   /** Maximum number of segments to be merged at a time,
-   *  during forceMerge or expungeDeletes. Default is 30. */
+   *  during forceMerge or forceMergeDeletes. Default is 30. */
   public TieredMergePolicy setMaxMergeAtOnceExplicit(int v) {
     if (v < 2) {
       throw new IllegalArgumentException("maxMergeAtOnceExplicit must be > 1 (got " + v + ")");
@@ -171,20 +171,20 @@ public class TieredMergePolicy extends M
     return floorSegmentBytes/1024*1024.;
   }
 
-  /** When expungeDeletes is called, we only merge away a
+  /** When forceMergeDeletes is called, we only merge away a
    *  segment if its delete percentage is over this
    *  threshold.  Default is 10%. */ 
-  public TieredMergePolicy setExpungeDeletesPctAllowed(double v) {
+  public TieredMergePolicy setForceMergeDeletesPctAllowed(double v) {
     if (v < 0.0 || v > 100.0) {
-      throw new IllegalArgumentException("expungeDeletesPctAllowed must be between 0.0 and 100.0 inclusive (got " + v + ")");
+      throw new IllegalArgumentException("forceMergeDeletesPctAllowed must be between 0.0 and 100.0 inclusive (got " + v + ")");
     }
-    expungeDeletesPctAllowed = v;
+    forceMergeDeletesPctAllowed = v;
     return this;
   }
 
-  /** @see #setExpungeDeletesPctAllowed */
-  public double getExpungeDeletesPctAllowed() {
-    return expungeDeletesPctAllowed;
+  /** @see #setForceMergeDeletesPctAllowed */
+  public double getForceMergeDeletesPctAllowed() {
+    return forceMergeDeletesPctAllowed;
   }
 
   /** Sets the allowed number of segments per tier.  Smaller
@@ -550,16 +550,16 @@ public class TieredMergePolicy extends M
   }
 
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(SegmentInfos infos)
+  public MergeSpecification findForcedDeletesMerges(SegmentInfos infos)
       throws CorruptIndexException, IOException {
     if (verbose()) {
-      message("findMergesToExpungeDeletes infos=" + writer.get().segString(infos) + " expungeDeletesPctAllowed=" + expungeDeletesPctAllowed);
+      message("findForcedDeletesMerges infos=" + writer.get().segString(infos) + " forceMergeDeletesPctAllowed=" + forceMergeDeletesPctAllowed);
     }
     final List<SegmentInfo> eligible = new ArrayList<SegmentInfo>();
     final Collection<SegmentInfo> merging = writer.get().getMergingSegments();
     for(SegmentInfo info : infos) {
       double pctDeletes = 100.*((double) writer.get().numDeletedDocs(info))/info.docCount;
-      if (pctDeletes > expungeDeletesPctAllowed && !merging.contains(info)) {
+      if (pctDeletes > forceMergeDeletesPctAllowed && !merging.contains(info)) {
         eligible.add(info);
       }
     }
@@ -579,7 +579,7 @@ public class TieredMergePolicy extends M
 
     while(start < eligible.size()) {
       // Don't enforce max merged size here: app is explicitly
-      // calling expungeDeletes, and knows this may take a
+      // calling forceMergeDeletes, and knows this may take a
       // long time / produce big segments (like forceMerge):
       final int end = Math.min(start + maxMergeAtOnceExplicit, eligible.size());
       if (spec == null) {
@@ -664,10 +664,10 @@ public class TieredMergePolicy extends M
     sb.append("maxMergeAtOnceExplicit=").append(maxMergeAtOnceExplicit).append(", ");
     sb.append("maxMergedSegmentMB=").append(maxMergedSegmentBytes/1024/1024.).append(", ");
     sb.append("floorSegmentMB=").append(floorSegmentBytes/1024/1024.).append(", ");
-    sb.append("expungeDeletesPctAllowed=").append(expungeDeletesPctAllowed).append(", ");
+    sb.append("forceMergeDeletesPctAllowed=").append(forceMergeDeletesPctAllowed).append(", ");
     sb.append("segmentsPerTier=").append(segsPerTier).append(", ");
     sb.append("useCompoundFile=").append(useCompoundFile).append(", ");
     sb.append("noCFSRatio=").append(noCFSRatio);
     return sb.toString();
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -127,8 +127,8 @@ public class UpgradeIndexMergePolicy ext
   }
   
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(SegmentInfos segmentInfos) throws CorruptIndexException, IOException {
-    return base.findMergesToExpungeDeletes(segmentInfos);
+  public MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos) throws CorruptIndexException, IOException {
+    return base.findForcedDeletesMerges(segmentInfos);
   }
   
   @Override

Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/MockRandomMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/MockRandomMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/MockRandomMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/MockRandomMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -93,7 +93,7 @@ public class MockRandomMergePolicy exten
   }
 
   @Override
-  public MergeSpecification findMergesToExpungeDeletes(
+  public MergeSpecification findForcedDeletesMerges(
       SegmentInfos segmentInfos)
     throws CorruptIndexException, IOException {
     return findMerges(segmentInfos);

Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java Fri Nov 18 17:27:04 2011
@@ -330,12 +330,12 @@ public class RandomIndexWriter implement
   private boolean doRandomForceMerge = true;
   private boolean doRandomForceMergeAssert = true;
 
-  public void expungeDeletes(boolean doWait) throws IOException {
-    w.expungeDeletes(doWait);
+  public void forceMergeDeletes(boolean doWait) throws IOException {
+    w.forceMergeDeletes(doWait);
   }
 
-  public void expungeDeletes() throws IOException {
-    w.expungeDeletes();
+  public void forceMergeDeletes() throws IOException {
+    w.forceMergeDeletes();
   }
 
   public void setDoRandomForceMerge(boolean v) {

Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/LuceneTestCase.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/LuceneTestCase.java Fri Nov 18 17:27:04 2011
@@ -157,8 +157,6 @@ public abstract class LuceneTestCase ext
   /** whether or not to clean threads between test invocations: "false", "perMethod", "perClass" */
   public static final Throttling TEST_THROTTLING = TEST_NIGHTLY ? Throttling.SOMETIMES : Throttling.NEVER;
 
-  private static final Pattern codecWithParam = Pattern.compile("(.*)\\(\\s*(\\d+)\\s*\\)");
-
   /**
    * A random multiplier which you should use when writing random tests:
    * multiply it by the number of iterations
@@ -955,7 +953,7 @@ public abstract class LuceneTestCase ext
     }
     tmp.setMaxMergedSegmentMB(0.2 + r.nextDouble() * 2.0);
     tmp.setFloorSegmentMB(0.2 + r.nextDouble() * 2.0);
-    tmp.setExpungeDeletesPctAllowed(0.0 + r.nextDouble() * 30.0);
+    tmp.setForceMergeDeletesPctAllowed(0.0 + r.nextDouble() * 30.0);
     tmp.setSegmentsPerTier(_TestUtil.nextInt(r, 2, 20));
     tmp.setUseCompoundFile(r.nextBoolean());
     tmp.setNoCFSRatio(0.1 + r.nextDouble()*0.8);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java Fri Nov 18 17:27:04 2011
@@ -245,7 +245,7 @@ public class TestConsistentFieldNumbers 
         writer.deleteDocuments(new Term("f1", "d1"));
         // nuke the first segment entirely so that the segment with gaps is
         // loaded first!
-        writer.expungeDeletes();
+        writer.forceMergeDeletes();
         writer.close();
       }
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java Fri Nov 18 17:27:04 2011
@@ -116,9 +116,9 @@ public class TestIndexWriterMerging exte
     writer.close();
   }
   
-  // LUCENE-325: test expungeDeletes, when 2 singular merges
+  // LUCENE-325: test forceMergeDeletes, when 2 singular merges
   // are required
-  public void testExpungeDeletes() throws IOException {
+  public void testForceMergeDeletes() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random))
@@ -156,7 +156,7 @@ public class TestIndexWriterMerging exte
     writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     assertEquals(8, writer.numDocs());
     assertEquals(10, writer.maxDoc());
-    writer.expungeDeletes();
+    writer.forceMergeDeletes();
     assertEquals(8, writer.numDocs());
     writer.close();
     ir = IndexReader.open(dir, true);
@@ -166,8 +166,8 @@ public class TestIndexWriterMerging exte
     dir.close();
   }
 
-  // LUCENE-325: test expungeDeletes, when many adjacent merges are required
-  public void testExpungeDeletes2() throws IOException {
+  // LUCENE-325: test forceMergeDeletes, when many adjacent merges are required
+  public void testForceMergeDeletes2() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(
         dir,
@@ -210,7 +210,7 @@ public class TestIndexWriterMerging exte
             setMergePolicy(newLogMergePolicy(3))
     );
     assertEquals(49, writer.numDocs());
-    writer.expungeDeletes();
+    writer.forceMergeDeletes();
     writer.close();
     ir = IndexReader.open(dir, true);
     assertEquals(49, ir.maxDoc());
@@ -219,9 +219,9 @@ public class TestIndexWriterMerging exte
     dir.close();
   }
 
-  // LUCENE-325: test expungeDeletes without waiting, when
+  // LUCENE-325: test forceMergeDeletes without waiting, when
   // many adjacent merges are required
-  public void testExpungeDeletes3() throws IOException {
+  public void testForceMergeDeletes3() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(
         dir,
@@ -262,7 +262,7 @@ public class TestIndexWriterMerging exte
         newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).
             setMergePolicy(newLogMergePolicy(3))
     );
-    writer.expungeDeletes(false);
+    writer.forceMergeDeletes(false);
     writer.close();
     ir = IndexReader.open(dir, true);
     assertEquals(49, ir.maxDoc());

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Fri Nov 18 17:27:04 2011
@@ -873,7 +873,7 @@ public class TestIndexWriterReader exten
     dir1.close();
   }
 
-  public void testExpungeDeletes() throws Throwable {
+  public void testForceMergeDeletes() throws Throwable {
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
@@ -887,7 +887,7 @@ public class TestIndexWriterReader exten
     w.deleteDocuments(new Term("id", "0"));
 
     IndexReader r = w.getReader();
-    w.expungeDeletes();
+    w.forceMergeDeletes();
     w.close();
     r.close();
     r = IndexReader.open(dir, true);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -32,7 +32,7 @@ public class TestNoMergePolicy extends L
     MergePolicy mp = NoMergePolicy.NO_COMPOUND_FILES;
     assertNull(mp.findMerges(null));
     assertNull(mp.findForcedMerges(null, 0, null));
-    assertNull(mp.findMergesToExpungeDeletes(null));
+    assertNull(mp.findForcedDeletesMerges(null));
     assertFalse(mp.useCompoundFile(null, null));
     mp.close();
   }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java Fri Nov 18 17:27:04 2011
@@ -274,7 +274,7 @@ public class TestPerSegmentDeletes exten
     }
 
     @Override
-    public MergeSpecification findMergesToExpungeDeletes(
+    public MergeSpecification findForcedDeletesMerges(
         SegmentInfos segmentInfos) throws CorruptIndexException, IOException {
       return null;
     }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTieredMergePolicy.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTieredMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTieredMergePolicy.java Fri Nov 18 17:27:04 2011
@@ -27,7 +27,7 @@ import org.apache.lucene.util._TestUtil;
 
 public class TestTieredMergePolicy extends LuceneTestCase {
 
-  public void testExpungeDeletes() throws Exception {
+  public void testForceMergeDeletes() throws Exception {
     Directory dir = newDirectory();
     IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random));
     TieredMergePolicy tmp = newTieredMergePolicy();
@@ -35,7 +35,7 @@ public class TestTieredMergePolicy exten
     conf.setMaxBufferedDocs(4);
     tmp.setMaxMergeAtOnce(100);
     tmp.setSegmentsPerTier(100);
-    tmp.setExpungeDeletesPctAllowed(30.0);
+    tmp.setForceMergeDeletesPctAllowed(30.0);
     IndexWriter w = new IndexWriter(dir, conf);
     for(int i=0;i<80;i++) {
       Document doc = new Document();
@@ -49,16 +49,16 @@ public class TestTieredMergePolicy exten
       System.out.println("\nTEST: delete docs");
     }
     w.deleteDocuments(new Term("content", "0"));
-    w.expungeDeletes();
+    w.forceMergeDeletes();
 
     assertEquals(80, w.maxDoc());
     assertEquals(60, w.numDocs());
 
     if (VERBOSE) {
-      System.out.println("\nTEST: expunge2");
+      System.out.println("\nTEST: forceMergeDeletes2");
     }
-    tmp.setExpungeDeletesPctAllowed(10.0);
-    w.expungeDeletes();
+    tmp.setForceMergeDeletesPctAllowed(10.0);
+    w.forceMergeDeletes();
     assertEquals(60, w.maxDoc());
     assertEquals(60, w.numDocs());
     w.close();
@@ -107,12 +107,12 @@ public class TestTieredMergePolicy exten
     }
   }
 
-  public void testExpungeMaxSegSize() throws Exception {
+  public void testForceMergeDeletesMaxSegSize() throws Exception {
     final Directory dir = newDirectory();
     final IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random));
     final TieredMergePolicy tmp = new TieredMergePolicy();
     tmp.setMaxMergedSegmentMB(0.01);
-    tmp.setExpungeDeletesPctAllowed(0.0);
+    tmp.setForceMergeDeletesPctAllowed(0.0);
     conf.setMergePolicy(tmp);
 
     final RandomIndexWriter w = new RandomIndexWriter(random, dir, conf);
@@ -139,7 +139,7 @@ public class TestTieredMergePolicy exten
     assertEquals(numDocs-1, r.numDocs());
     r.close();
 
-    w.expungeDeletes();
+    w.forceMergeDeletes();
 
     r = w.getReader();
     assertEquals(numDocs-1, r.maxDoc());

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=1203756&r1=1203755&r2=1203756&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java Fri Nov 18 17:27:04 2011
@@ -313,7 +313,7 @@ public class DirectUpdateHandler2 extend
       if (cmd.optimize) {
         writer.forceMerge(cmd.maxOptimizeSegments);
       } else if (cmd.expungeDeletes) {
-        writer.expungeDeletes();
+        writer.forceMergeDeletes();
       }
 
       if (!cmd.softCommit) {