You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/04/28 18:22:14 UTC
svn commit: r1097534 - in /lucene/dev/branches/realtime_search/lucene/src:
java/org/apache/lucene/index/ test/org/apache/lucene/index/
Author: simonw
Date: Thu Apr 28 16:22:14 2011
New Revision: 1097534
URL: http://svn.apache.org/viewvc?rev=1097534&view=rev
Log:
LUCENE-3023: moved IWC.DEFAULT_MAX_THREAD_STATES into DocumentsWriterPerThreadPool
Modified:
lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java
lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriterConfig.java
lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/ThreadAffinityDocumentsWriterThreadPool.java
lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java?rev=1097534&r1=1097533&r2=1097534&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java Thu Apr 28 16:22:14 2011
@@ -41,6 +41,11 @@ import org.apache.lucene.util.SetOnce;
* </p>
*/
public abstract class DocumentsWriterPerThreadPool {
+ /** The maximum number of simultaneous threads that may be
+ * indexing documents at once in IndexWriter; if more
+ * than this many threads arrive they will wait for
+ * others to finish. */
+ public final static int DEFAULT_MAX_THREAD_STATES = 8;
/**
* {@link ThreadState} references and guards a
@@ -127,9 +132,17 @@ public abstract class DocumentsWriterPer
private CodecProvider codecProvider;
private FieldNumberBiMap globalFieldMap;
private final SetOnce<DocumentsWriter> documentsWriter = new SetOnce<DocumentsWriter>();
+
+ /**
+ * Creates a new {@link DocumentsWriterPerThreadPool} with max.
+ * {@link #DEFAULT_MAX_THREAD_STATES} thread states.
+ */
+ public DocumentsWriterPerThreadPool() {
+ this(DEFAULT_MAX_THREAD_STATES);
+ }
public DocumentsWriterPerThreadPool(int maxNumPerThreads) {
- maxNumPerThreads = (maxNumPerThreads < 1) ? IndexWriterConfig.DEFAULT_MAX_THREAD_STATES : maxNumPerThreads;
+ maxNumPerThreads = (maxNumPerThreads < 1) ? DEFAULT_MAX_THREAD_STATES : maxNumPerThreads;
perThreads = new ThreadState[maxNumPerThreads];
numThreadStatesActive = 0;
}
Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriterConfig.java?rev=1097534&r1=1097533&r2=1097534&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriterConfig.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriterConfig.java Thu Apr 28 16:22:14 2011
@@ -82,12 +82,6 @@ public final class IndexWriterConfig imp
*/
public static long WRITE_LOCK_TIMEOUT = 1000;
- /** The maximum number of simultaneous threads that may be
- * indexing documents at once in IndexWriter; if more
- * than this many threads arrive they will wait for
- * others to finish. */
- public final static int DEFAULT_MAX_THREAD_STATES = 8;
-
/** Default setting for {@link #setReaderPooling}. */
public final static boolean DEFAULT_READER_POOLING = false;
@@ -162,7 +156,7 @@ public final class IndexWriterConfig imp
codecProvider = CodecProvider.getDefault();
mergePolicy = new TieredMergePolicy();
readerPooling = DEFAULT_READER_POOLING;
- indexerThreadPool = new ThreadAffinityDocumentsWriterThreadPool(DEFAULT_MAX_THREAD_STATES);
+ indexerThreadPool = new ThreadAffinityDocumentsWriterThreadPool();
readerTermsIndexDivisor = DEFAULT_READER_TERMS_INDEX_DIVISOR;
perThreadHardLimitMB = DEFAULT_RAM_PER_THREAD_HARD_LIMIT_MB;
}
@@ -544,8 +538,8 @@ public final class IndexWriterConfig imp
* IndexWriter to assign thread-states to incoming indexing threads. If no
* {@link DocumentsWriterPerThreadPool} is set {@link IndexWriter} will use
* {@link ThreadAffinityDocumentsWriterThreadPool} with max number of
- * thread-states set to {@value #DEFAULT_MAX_THREAD_STATES} (see
- * {@link #DEFAULT_MAX_THREAD_STATES}).
+ * thread-states set to {@value DocumentsWriterPerThreadPool#DEFAULT_MAX_THREAD_STATES} (see
+ * {@link DocumentsWriterPerThreadPool#DEFAULT_MAX_THREAD_STATES}).
* </p>
* <p>
* NOTE: The given {@link DocumentsWriterPerThreadPool} instance must not be used with
@@ -569,18 +563,6 @@ public final class IndexWriterConfig imp
return this.indexerThreadPool;
}
- /** Returns the max number of simultaneous threads that may be indexing
- * documents at once in IndexWriter.
- * <p>
- * To modify the max number of thread-states a new
- * {@link DocumentsWriterPerThreadPool} must be set via
- * {@link #setIndexerThreadPool(DocumentsWriterPerThreadPool)}.
- * </p>
- * @see #setIndexerThreadPool(DocumentsWriterPerThreadPool) */
- public int getMaxThreadStates() {
- return indexerThreadPool.getMaxThreadStates();
- }
-
/** By default, IndexWriter does not pool the
* SegmentReaders it must open for deletions and
* merging, unless a near-real-time reader has been
@@ -705,7 +687,6 @@ public final class IndexWriterConfig imp
sb.append("codecProvider=").append(codecProvider).append("\n");
sb.append("mergePolicy=").append(mergePolicy).append("\n");
sb.append("indexerThreadPool=").append(indexerThreadPool).append("\n");
- sb.append("maxThreadStates=").append(indexerThreadPool.getMaxThreadStates()).append("\n");
sb.append("readerPooling=").append(readerPooling).append("\n");
sb.append("readerTermsIndexDivisor=").append(readerTermsIndexDivisor).append("\n");
sb.append("flushPolicy=").append(flushPolicy).append("\n");
Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/ThreadAffinityDocumentsWriterThreadPool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/ThreadAffinityDocumentsWriterThreadPool.java?rev=1097534&r1=1097533&r2=1097534&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/ThreadAffinityDocumentsWriterThreadPool.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/ThreadAffinityDocumentsWriterThreadPool.java Thu Apr 28 16:22:14 2011
@@ -32,7 +32,15 @@ import org.apache.lucene.document.Docume
*/
public class ThreadAffinityDocumentsWriterThreadPool extends DocumentsWriterPerThreadPool {
private Map<Thread, ThreadState> threadBindings = new ConcurrentHashMap<Thread, ThreadState>();
-
+
+ /**
+ * Creates a new {@link DocumentsWriterPerThreadPool} with max.
+ * {@link #DEFAULT_MAX_THREAD_STATES} thread states.
+ */
+ public ThreadAffinityDocumentsWriterThreadPool() {
+ this(DEFAULT_MAX_THREAD_STATES);
+ }
+
public ThreadAffinityDocumentsWriterThreadPool(int maxNumPerThreads) {
super(maxNumPerThreads);
assert getMaxThreadStates() >= 1;
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java?rev=1097534&r1=1097533&r2=1097534&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java Thu Apr 28 16:22:14 2011
@@ -66,7 +66,6 @@ public class TestIndexWriterConfig exten
assertEquals(IndexWriterConfig.DEFAULT_READER_POOLING, conf.getReaderPooling());
assertTrue(DocumentsWriterPerThread.defaultIndexingChain == conf.getIndexingChain());
assertNull(conf.getMergedSegmentWarmer());
- assertEquals(IndexWriterConfig.DEFAULT_MAX_THREAD_STATES, conf.getMaxThreadStates());
assertEquals(IndexWriterConfig.DEFAULT_READER_TERMS_INDEX_DIVISOR, conf.getReaderTermsIndexDivisor());
assertEquals(TieredMergePolicy.class, conf.getMergePolicy().getClass());
assertEquals(ThreadAffinityDocumentsWriterThreadPool.class, conf.getIndexerThreadPool().getClass());
@@ -132,7 +131,6 @@ public class TestIndexWriterConfig exten
assertEquals(IndexWriterConfig.DISABLE_AUTO_FLUSH, IndexWriterConfig.DEFAULT_MAX_BUFFERED_DOCS);
assertEquals(16.0, IndexWriterConfig.DEFAULT_RAM_BUFFER_SIZE_MB, 0.0);
assertEquals(false, IndexWriterConfig.DEFAULT_READER_POOLING);
- assertEquals(8, IndexWriterConfig.DEFAULT_MAX_THREAD_STATES);
assertEquals(IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, IndexWriterConfig.DEFAULT_READER_TERMS_INDEX_DIVISOR);
}
@@ -262,12 +260,6 @@ public class TestIndexWriterConfig exten
// this is expected
}
- assertEquals(IndexWriterConfig.DEFAULT_MAX_THREAD_STATES, conf.getMaxThreadStates());
- conf.setIndexerThreadPool(new ThreadAffinityDocumentsWriterThreadPool(5));
- assertEquals(5, conf.getMaxThreadStates());
- conf.setIndexerThreadPool(new ThreadAffinityDocumentsWriterThreadPool(0));
- assertEquals(IndexWriterConfig.DEFAULT_MAX_THREAD_STATES, conf.getMaxThreadStates());
-
// Test MergePolicy
assertEquals(TieredMergePolicy.class, conf.getMergePolicy().getClass());
conf.setMergePolicy(new LogDocMergePolicy());