Lucene++ - a full-featured, c++ search engine
API Documentation


Loading...
Searching...
No Matches
ConcurrentMergeScheduler.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef CONCURRENTMERGESCHEDULER_H
8#define CONCURRENTMERGESCHEDULER_H
9
10#include "MergeScheduler.h"
11
12namespace Lucene {
13
20public:
23
25
26protected:
28
29 SetMergeThread mergeThreads;
30
33
35
36 bool closed;
38
40
42 static bool anyExceptions;
43
44public:
45 virtual void initialize();
46
50 virtual void setMaxThreadCount(int32_t count);
51
53 virtual int32_t getMaxThreadCount();
54
57 virtual int32_t getMergeThreadPriority();
58
60 virtual void setMergeThreadPriority(int32_t pri);
61
62 virtual void close();
63
64 virtual void sync();
65
66 virtual void merge(const IndexWriterPtr& writer);
67
71
75
77 static void setTestMode();
78
79protected:
80 virtual bool verbose();
81 virtual void message(const String& message);
83 virtual int32_t mergeThreadCount();
84
86 virtual void doMerge(const OneMergePtr& merge);
87
88 virtual MergeThreadPtr getMergeThread(const IndexWriterPtr& writer, const OneMergePtr& merge);
89
91 virtual void handleMergeException(const LuceneException& exc);
92
93 virtual void addMyself();
94
95 friend class MergeThread;
96};
97
98}
99
100#endif
#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,...
virtual int32_t mergeThreadCount()
virtual void message(const String &message)
virtual void merge(const IndexWriterPtr &writer)
Run the merges provided by IndexWriter#getNextMerge().
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 ...
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

clucene.sourceforge.net