A MergeScheduler
that runs each merge using a separate thread, up until a maximum number of threads (setMaxThreadCount
) at which when a merge is needed, the thread(s) that are updating the index will pause until one or more merges completes. This is a simple way to use concurrency in the indexing process without having to create and manage application level threads.
More...
#include <ConcurrentMergeScheduler.h>
A MergeScheduler
that runs each merge using a separate thread, up until a maximum number of threads (setMaxThreadCount
) at which when a merge is needed, the thread(s) that are updating the index will pause until one or more merges completes. This is a simple way to use concurrency in the indexing process without having to create and manage application level threads.
◆ ConcurrentMergeScheduler()
Lucene::ConcurrentMergeScheduler::ConcurrentMergeScheduler |
( |
| ) |
|
◆ ~ConcurrentMergeScheduler()
virtual Lucene::ConcurrentMergeScheduler::~ConcurrentMergeScheduler |
( |
| ) |
|
|
virtual |
◆ _getClassName()
static String Lucene::ConcurrentMergeScheduler::_getClassName |
( |
| ) |
|
|
inlinestatic |
◆ addMyself()
virtual void Lucene::ConcurrentMergeScheduler::addMyself |
( |
| ) |
|
|
protectedvirtual |
◆ anyUnhandledExceptions()
static bool Lucene::ConcurrentMergeScheduler::anyUnhandledExceptions |
( |
| ) |
|
|
static |
◆ clearSuppressExceptions()
void Lucene::ConcurrentMergeScheduler::clearSuppressExceptions |
( |
| ) |
|
◆ clearUnhandledExceptions()
static void Lucene::ConcurrentMergeScheduler::clearUnhandledExceptions |
( |
| ) |
|
|
static |
◆ close()
virtual void Lucene::ConcurrentMergeScheduler::close |
( |
| ) |
|
|
virtual |
◆ doMerge()
virtual void Lucene::ConcurrentMergeScheduler::doMerge |
( |
const OneMergePtr & |
merge | ) |
|
|
protectedvirtual |
◆ getClassName()
virtual String Lucene::ConcurrentMergeScheduler::getClassName |
( |
| ) |
|
|
inlinevirtual |
◆ getMaxThreadCount()
virtual int32_t Lucene::ConcurrentMergeScheduler::getMaxThreadCount |
( |
| ) |
|
|
virtual |
◆ getMergeThread()
◆ getMergeThreadPriority()
virtual int32_t Lucene::ConcurrentMergeScheduler::getMergeThreadPriority |
( |
| ) |
|
|
virtual |
Return the priority that merge threads run at. By default the priority is 1 plus the priority of (ie, slightly higher priority than) the first thread that calls merge.
◆ handleMergeException()
virtual void Lucene::ConcurrentMergeScheduler::handleMergeException |
( |
const LuceneException & |
exc | ) |
|
|
protectedvirtual |
Called when an exception is hit in a background merge thread.
◆ initialize()
virtual void Lucene::ConcurrentMergeScheduler::initialize |
( |
| ) |
|
|
virtual |
Called directly after instantiation to create objects that depend on this object being fully constructed.
Reimplemented from Lucene::LuceneObject.
◆ initMergeThreadPriority()
virtual void Lucene::ConcurrentMergeScheduler::initMergeThreadPriority |
( |
| ) |
|
|
protectedvirtual |
◆ merge()
virtual void Lucene::ConcurrentMergeScheduler::merge |
( |
const IndexWriterPtr & |
writer | ) |
|
|
virtual |
◆ mergeThreadCount()
virtual int32_t Lucene::ConcurrentMergeScheduler::mergeThreadCount |
( |
| ) |
|
|
protectedvirtual |
◆ message()
virtual void Lucene::ConcurrentMergeScheduler::message |
( |
const String & |
message | ) |
|
|
protectedvirtual |
◆ setMaxThreadCount()
virtual void Lucene::ConcurrentMergeScheduler::setMaxThreadCount |
( |
int32_t |
count | ) |
|
|
virtual |
Sets the max # simultaneous threads that may be running. If a merge is necessary yet we already have this many threads running, the incoming thread (that is calling add/updateDocument) will block until a merge thread has completed.
◆ setMergeThreadPriority()
virtual void Lucene::ConcurrentMergeScheduler::setMergeThreadPriority |
( |
int32_t |
pri | ) |
|
|
virtual |
Set the priority that merge threads run at.
◆ setSuppressExceptions()
void Lucene::ConcurrentMergeScheduler::setSuppressExceptions |
( |
| ) |
|
◆ setTestMode()
static void Lucene::ConcurrentMergeScheduler::setTestMode |
( |
| ) |
|
|
static |
◆ shared_from_this()
◆ sync()
virtual void Lucene::ConcurrentMergeScheduler::sync |
( |
| ) |
|
|
virtual |
◆ verbose()
virtual bool Lucene::ConcurrentMergeScheduler::verbose |
( |
| ) |
|
|
protectedvirtual |
◆ _writer
◆ allInstances
◆ anyExceptions
bool Lucene::ConcurrentMergeScheduler::anyExceptions |
|
staticprotected |
◆ closed
bool Lucene::ConcurrentMergeScheduler::closed |
|
protected |
◆ dir
◆ maxThreadCount
int32_t Lucene::ConcurrentMergeScheduler::maxThreadCount |
|
protected |
Max number of threads allowed to be merging at once.
◆ mergeThreadPriority
int32_t Lucene::ConcurrentMergeScheduler::mergeThreadPriority |
|
protected |
◆ mergeThreads
SetMergeThread Lucene::ConcurrentMergeScheduler::mergeThreads |
|
protected |
◆ suppressExceptions
bool Lucene::ConcurrentMergeScheduler::suppressExceptions |
|
protected |
The documentation for this class was generated from the following file: