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) |
DirectoryReader |
openIndexReader() |
protected DirectoryReader |
readerFactory(Directory directory) |
void |
stop() |
protected final Map<IndexReader,SharingBufferReaderProvider.ReaderUsagePair> allReaders
protected final Map<Directory,SharingBufferReaderProvider.PerDirectoryLatestReader> currentReaders
public DirectoryReader openIndexReader()
openIndexReader
in interface ReaderProvider
public void closeIndexReader(IndexReader reader)
closeIndexReader
in interface ReaderProvider
public void initialize(DirectoryBasedIndexManager indexManager, Properties props)
initialize
in interface DirectoryBasedReaderProvider
public void stop()
stop
in interface DirectoryBasedReaderProvider
protected DirectoryReader readerFactory(Directory directory) throws IOException
IOException
Copyright © 2006-2017 Red Hat, Inc. All Rights Reserved