7#ifndef CONCURRENTMERGESCHEDULER_H
8#define CONCURRENTMERGESCHEDULER_H
81 virtual void message(
const String& message);
95 friend class MergeThread;
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Utility template class to handle collections that can be safely copied and shared.
Definition Collection.h:17
A MergeScheduler that runs each merge using a separate thread, up until a maximum number of threads (...
Definition ConcurrentMergeScheduler.h:19
virtual int32_t getMergeThreadPriority()
Return the priority that merge threads run at. By default the priority is 1 plus the priority of (ie,...
void clearSuppressExceptions()
static void clearUnhandledExceptions()
virtual int32_t mergeThreadCount()
virtual void message(const String &message)
virtual void merge(const IndexWriterPtr &writer)
Run the merges provided by IndexWriter#getNextMerge().
ConcurrentMergeScheduler()
bool closed
Definition ConcurrentMergeScheduler.h:36
virtual void doMerge(const OneMergePtr &merge)
Does the actual merge, by calling IndexWriter#merge.
virtual void initialize()
Called directly after instantiation to create objects that depend on this object being fully construc...
static bool anyUnhandledExceptions()
Used for testing.
virtual int32_t getMaxThreadCount()
Get the max # simultaneous threads that may be running.
virtual void initMergeThreadPriority()
void setSuppressExceptions()
Used for testing.
bool suppressExceptions
Definition ConcurrentMergeScheduler.h:41
static Collection< ConcurrentMergeSchedulerPtr > allInstances
Definition ConcurrentMergeScheduler.h:39
DirectoryPtr dir
Definition ConcurrentMergeScheduler.h:34
int32_t mergeThreadPriority
Definition ConcurrentMergeScheduler.h:27
virtual void handleMergeException(const LuceneException &exc)
Called when an exception is hit in a background merge thread.
virtual void close()
Close this MergeScheduler.
IndexWriterWeakPtr _writer
Definition ConcurrentMergeScheduler.h:37
static bool anyExceptions
Definition ConcurrentMergeScheduler.h:42
virtual void setMaxThreadCount(int32_t count)
Sets the max # simultaneous threads that may be running. If a merge is necessary yet we already have ...
virtual ~ConcurrentMergeScheduler()
static void setTestMode()
Used for testing.
int32_t maxThreadCount
Max number of threads allowed to be merging at once.
Definition ConcurrentMergeScheduler.h:32
virtual void setMergeThreadPriority(int32_t pri)
Set the priority that merge threads run at.
virtual MergeThreadPtr getMergeThread(const IndexWriterPtr &writer, const OneMergePtr &merge)
SetMergeThread mergeThreads
Definition ConcurrentMergeScheduler.h:29
Lucene exception container.
Definition LuceneException.h:15
IndexWriter uses an instance implementing this interface to execute the merges selected by a MergePol...
Definition MergeScheduler.h:16
Definition AbstractAllTermDocs.h:12
boost::weak_ptr< IndexWriter > IndexWriterWeakPtr
Definition LuceneTypes.h:160
boost::shared_ptr< OneMerge > OneMergePtr
Definition LuceneTypes.h:192
boost::shared_ptr< Directory > DirectoryPtr
Definition LuceneTypes.h:489
boost::shared_ptr< MergeThread > MergeThreadPtr
Definition LuceneTypes.h:177
boost::shared_ptr< IndexWriter > IndexWriterPtr
Definition LuceneTypes.h:160