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 2014/05/09 11:26:59 UTC

svn commit: r1593501 - in /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index: FlushByRamOrCountsPolicy.java FlushPolicy.java

Author: mikemccand
Date: Fri May  9 09:26:58 2014
New Revision: 1593501

URL: http://svn.apache.org/r1593501
Log:
print number of active threads states in IW.infoStream, even when flushing due to RAM usage

Modified:
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java?rev=1593501&r1=1593500&r2=1593501&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java Fri May  9 09:26:58 2014
@@ -89,7 +89,7 @@ class FlushByRamOrCountsPolicy extends F
       final long totalRam = control.activeBytes() + control.getDeleteBytesUsed();
       if (totalRam >= limit) {
         if (infoStream.isEnabled("FP")) {
-          infoStream.message("FP", "flush: activeBytes=" + control.activeBytes() + " deleteBytes=" + control.getDeleteBytesUsed() + " vs limit=" + limit);
+          infoStream.message("FP", "trigger flush: activeBytes=" + control.activeBytes() + " deleteBytes=" + control.getDeleteBytesUsed() + " vs limit=" + limit);
         }
         markLargestWriterPending(control, state, totalRam);
       }
@@ -102,8 +102,7 @@ class FlushByRamOrCountsPolicy extends F
    */
   protected void markLargestWriterPending(DocumentsWriterFlushControl control,
       ThreadState perThreadState, final long currentBytesPerThread) {
-    control
-        .setFlushPending(findLargestNonPendingWriter(control, perThreadState));
+    control.setFlushPending(findLargestNonPendingWriter(control, perThreadState));
   }
   
   /**

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java?rev=1593501&r1=1593500&r2=1593501&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java Fri May  9 09:26:58 2014
@@ -113,16 +113,23 @@ abstract class FlushPolicy implements Cl
     ThreadState maxRamUsingThreadState = perThreadState;
     assert !perThreadState.flushPending : "DWPT should have flushed";
     Iterator<ThreadState> activePerThreadsIterator = control.allActiveThreadStates();
+    int count = 0;
     while (activePerThreadsIterator.hasNext()) {
       ThreadState next = activePerThreadsIterator.next();
       if (!next.flushPending) {
         final long nextRam = next.bytesUsed;
-        if (nextRam > maxRamSoFar && next.dwpt.getNumDocsInRAM() > 0) {
-          maxRamSoFar = nextRam;
-          maxRamUsingThreadState = next;
+        if (nextRam > 0 && next.dwpt.getNumDocsInRAM() > 0) {
+          count++;
+          if (nextRam > maxRamSoFar) {
+            maxRamSoFar = nextRam;
+            maxRamUsingThreadState = next;
+          }
         }
       }
     }
+    if (infoStream.isEnabled("FP")) {
+      infoStream.message("FP", count + " in-use non-flushing threads states");
+    }
     assert assertMessage("set largest ram consuming thread pending on lower watermark");
     return maxRamUsingThreadState;
   }