|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.lucene.index.MergeScheduler
org.apache.lucene.index.ConcurrentMergeScheduler
public class ConcurrentMergeScheduler
A MergeScheduler
that runs each merge using a
separate thread.
Specify the max number of threads that may run at
once with setMaxThreadCount(int)
.
Separately specify the maximum number of simultaneous
merges with setMaxMergeCount(int)
. If the number of
merges exceeds the max number of threads then the
largest merges are paused until one of the smaller
merges completes.
If more than getMaxMergeCount()
merges are
requested then this class will forcefully throttle the
incoming threads by pausing until one more more merges
complete.
Nested Class Summary | |
---|---|
protected class |
ConcurrentMergeScheduler.MergeThread
Runs a merge thread, which may run one or more merges in sequence. |
Field Summary | |
---|---|
protected static Comparator<ConcurrentMergeScheduler.MergeThread> |
compareByMergeDocCount
Sorts ConcurrentMergeScheduler.MergeThread s; larger merges come first. |
protected Directory |
dir
Directory that holds the index. |
protected int |
mergeThreadCount
How many ConcurrentMergeScheduler.MergeThread s have kicked off (this is use
to name them). |
protected List<ConcurrentMergeScheduler.MergeThread> |
mergeThreads
List of currently active ConcurrentMergeScheduler.MergeThread s. |
protected IndexWriter |
writer
IndexWriter that owns this instance. |
Constructor Summary | |
---|---|
ConcurrentMergeScheduler()
Sole constructor, with all settings set to default values. |
Method Summary | |
---|---|
void |
close()
Close this MergeScheduler. |
protected void |
doMerge(MergePolicy.OneMerge merge)
Does the actual merge, by calling IndexWriter.merge(org.apache.lucene.index.MergePolicy.OneMerge) |
int |
getMaxMergeCount()
See setMaxMergeCount(int) . |
int |
getMaxThreadCount()
Returns maxThreadCount . |
protected ConcurrentMergeScheduler.MergeThread |
getMergeThread(IndexWriter writer,
MergePolicy.OneMerge merge)
Create and return a new MergeThread |
int |
getMergeThreadPriority()
Return the priority that merge threads run at. |
protected void |
handleMergeException(Throwable exc)
Called when an exception is hit in a background merge thread |
void |
merge(IndexWriter writer)
Run the merges provided by IndexWriter.getNextMerge() . |
protected int |
mergeThreadCount()
Returns the number of merge threads that are alive. |
protected void |
message(String message)
Outputs the given message - this method assumes verbose() was
called and returned true. |
void |
setMaxMergeCount(int count)
Sets the max # simultaneous merges that are allowed. |
void |
setMaxThreadCount(int count)
Sets the max # simultaneous merge threads that should be running at once. |
void |
setMergeThreadPriority(int pri)
Set the base priority that merge threads run at. |
void |
sync()
Wait for any running merge threads to finish. |
String |
toString()
|
protected void |
updateMergeThreads()
Called whenever the running merges have changed, to pause & unpause threads. |
protected boolean |
verbose()
Returns true if verbosing is enabled. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected List<ConcurrentMergeScheduler.MergeThread> mergeThreads
ConcurrentMergeScheduler.MergeThread
s.
protected Directory dir
Directory
that holds the index.
protected IndexWriter writer
IndexWriter
that owns this instance.
protected int mergeThreadCount
ConcurrentMergeScheduler.MergeThread
s have kicked off (this is use
to name them).
protected static final Comparator<ConcurrentMergeScheduler.MergeThread> compareByMergeDocCount
ConcurrentMergeScheduler.MergeThread
s; larger merges come first.
Constructor Detail |
---|
public ConcurrentMergeScheduler()
Method Detail |
---|
public void setMaxThreadCount(int count)
setMaxMergeCount(int)
.
public int getMaxThreadCount()
maxThreadCount
.
setMaxThreadCount(int)
public void setMaxMergeCount(int count)
setMaxThreadCount(int)
merges at a time.
public int getMaxMergeCount()
setMaxMergeCount(int)
.
public int getMergeThreadPriority()
public void setMergeThreadPriority(int pri)
protected void updateMergeThreads()
protected boolean verbose()
message(String)
, like that:
if (verbose()) { message("your message"); }
protected void message(String message)
verbose()
was
called and returned true.
public void close()
MergeScheduler
close
in interface Closeable
close
in class MergeScheduler
public void sync()
close()
.
protected int mergeThreadCount()
mergeThreads
size.
public void merge(IndexWriter writer) throws IOException
MergeScheduler
IndexWriter.getNextMerge()
.
merge
in class MergeScheduler
IOException
protected void doMerge(MergePolicy.OneMerge merge) throws IOException
IndexWriter.merge(org.apache.lucene.index.MergePolicy.OneMerge)
IOException
protected ConcurrentMergeScheduler.MergeThread getMergeThread(IndexWriter writer, MergePolicy.OneMerge merge) throws IOException
IOException
protected void handleMergeException(Throwable exc)
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |