Module org.elasticsearch.server
Package org.elasticsearch.index.engine
Class ElasticsearchReaderManager
java.lang.Object
org.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>
org.elasticsearch.index.engine.ElasticsearchReaderManager
- All Implemented Interfaces:
Closeable,AutoCloseable
public class ElasticsearchReaderManager
extends org.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>
Utility class to safely share
ElasticsearchDirectoryReader instances across
multiple threads, while periodically reopening. This class ensures each
reader is closed only once all threads have finished using it.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.search.ReferenceManager
org.apache.lucene.search.ReferenceManager.RefreshListener -
Field Summary
Fields inherited from class org.apache.lucene.search.ReferenceManager
current -
Constructor Summary
ConstructorsConstructorDescriptionCreates and returns a new ElasticsearchReaderManager from the given already-openedElasticsearchDirectoryReader, stealing the incoming reference. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddecRef(ElasticsearchDirectoryReader reference) protected intgetRefCount(ElasticsearchDirectoryReader reference) protected ElasticsearchDirectoryReaderrefreshIfNeeded(ElasticsearchDirectoryReader referenceToRefresh) protected booleantryIncRef(ElasticsearchDirectoryReader reference) Methods inherited from class org.apache.lucene.search.ReferenceManager
acquire, addListener, afterClose, afterMaybeRefresh, close, maybeRefresh, maybeRefreshBlocking, release, removeListener
-
Constructor Details
-
ElasticsearchReaderManager
Creates and returns a new ElasticsearchReaderManager from the given already-openedElasticsearchDirectoryReader, stealing the incoming reference.- Parameters:
reader- the directoryReader to use for future reopens
-
-
Method Details
-
decRef
- Specified by:
decRefin classorg.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>- Throws:
IOException
-
refreshIfNeeded
protected ElasticsearchDirectoryReader refreshIfNeeded(ElasticsearchDirectoryReader referenceToRefresh) throws IOException - Specified by:
refreshIfNeededin classorg.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>- Throws:
IOException
-
tryIncRef
- Specified by:
tryIncRefin classorg.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>
-
getRefCount
- Specified by:
getRefCountin classorg.apache.lucene.search.ReferenceManager<ElasticsearchDirectoryReader>
-