org.hibernate.search.indexes.impl
public class SharingBufferReaderProvider extends Object implements DirectoryBasedReaderProvider
ReaderProvider shares IndexReaders as long as they are "current";
It uses IndexReader.reopen() which should improve performance on larger indexes
as it shares buffers with previous IndexReader generation for the segments which didn't change.| Modifier and Type | Class and Description |
|---|---|
protected class |
SharingBufferReaderProvider.PerDirectoryLatestReader
An instance for each DirectoryProvider,
establishing the association between "current" ReaderUsagePair
for a DirectoryProvider and it's lock.
|
protected class |
SharingBufferReaderProvider.ReaderUsagePair
Container for the couple IndexReader,UsageCounter.
|
| Modifier and Type | Field and Description |
|---|---|
protected Map<IndexReader,SharingBufferReaderProvider.ReaderUsagePair> |
allReaders
contains all Readers (most current per Directory and all unclosed old readers)
|
protected Map<Directory,SharingBufferReaderProvider.PerDirectoryLatestReader> |
currentReaders
contains last updated Reader; protected by lockOnOpenLatest (in the values)
|
| Constructor and Description |
|---|
SharingBufferReaderProvider() |
| Modifier and Type | Method and Description |
|---|---|
void |
closeIndexReader(IndexReader reader) |
void |
initialize(DirectoryBasedIndexManager indexManager,
Properties props) |
IndexReader |
openIndexReader() |
protected IndexReader |
readerFactory(Directory directory) |
void |
stop() |
protected final Map<IndexReader,SharingBufferReaderProvider.ReaderUsagePair> allReaders
protected final Map<Directory,SharingBufferReaderProvider.PerDirectoryLatestReader> currentReaders
public IndexReader openIndexReader()
openIndexReader in interface ReaderProviderpublic void closeIndexReader(IndexReader reader)
closeIndexReader in interface ReaderProviderpublic void initialize(DirectoryBasedIndexManager indexManager, Properties props)
initialize in interface DirectoryBasedReaderProviderpublic void stop()
stop in interface DirectoryBasedReaderProviderprotected IndexReader readerFactory(Directory directory) throws IOException
IOExceptionCopyright © 2006-2015 Red Hat, Inc. All Rights Reserved