Package org.apache.solr.update
Class SolrCoreState
- java.lang.Object
-
- org.apache.solr.update.SolrCoreState
-
- Direct Known Subclasses:
DefaultSolrCoreState
public abstract class SolrCoreState extends Object
The state in this class can be easily shared between SolrCores across SolrCore reloads.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSolrCoreState.CoreIsClosedExceptionstatic interfaceSolrCoreState.IndexWriterCloser
-
Field Summary
Fields Modifier and Type Field Description protected booleanclosed
-
Constructor Summary
Constructors Constructor Description SolrCoreState()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidcancelRecovery()abstract voidclose(SolrCoreState.IndexWriterCloser closer)abstract voidcloseIndexWriter(SolrCore core, boolean rollback)Expert method that closes the IndexWriter - you must callopenIndexWriter(SolrCore)in a finally block after calling this method.booleandecrefSolrCoreState(SolrCoreState.IndexWriterCloser closer)voidderegisterInFlightUpdate()De-registers in-flight update requests to this core (marks them as completed)abstract voiddoRecovery(CoreContainer cc, CoreDescriptor cd)abstract LockgetCommitLock()abstract DirectoryFactorygetDirectoryFactory()abstract RefCounted<org.apache.lucene.index.IndexWriter>getIndexWriter(SolrCore core)Get the current IndexWriter.abstract booleangetLastReplicateIndexSuccess()abstract ActionThrottlegetLeaderThrottle()abstract org.apache.lucene.search.SortgetMergePolicySort()Get the current Sort of the current IndexWriter's MergePolicy..abstract LockgetRecoveryLock()abstract RecoveryStrategy.BuildergetRecoveryStrategyBuilder()ObjectgetReloadLock()ThrowablegetTragicException()ObjectgetUpdateLock()voidincrefSolrCoreState()abstract voidnewIndexWriter(SolrCore core, boolean rollback)Force the creation of a new IndexWriter using the settings from the given SolrCore.abstract voidopenIndexWriter(SolrCore core)Expert method that opens the IndexWriter - you must callcloseIndexWriter(SolrCore, boolean)first, and then call this method in a finally block.voidpauseUpdatesAndAwaitInflightRequests()Pauses all update requests to this core and waits (indefinitely) for all in-flight update requests to finishbooleanregisterInFlightUpdate()Registers in-flight update requests to this core.abstract voidrollbackIndexWriter(SolrCore core)Rollback the current IndexWriter.abstract voidsetLastReplicateIndexSuccess(boolean success)
-
-
-
Method Detail
-
getUpdateLock
public Object getUpdateLock()
-
getReloadLock
public Object getReloadLock()
-
increfSolrCoreState
public void increfSolrCoreState()
-
decrefSolrCoreState
public boolean decrefSolrCoreState(SolrCoreState.IndexWriterCloser closer)
-
pauseUpdatesAndAwaitInflightRequests
public void pauseUpdatesAndAwaitInflightRequests() throws TimeoutException, InterruptedExceptionPauses all update requests to this core and waits (indefinitely) for all in-flight update requests to finish- Throws:
TimeoutExceptionInterruptedException
-
registerInFlightUpdate
public boolean registerInFlightUpdate()
Registers in-flight update requests to this core.- Returns:
- true if request was registered, false if update requests are paused
-
deregisterInFlightUpdate
public void deregisterInFlightUpdate()
De-registers in-flight update requests to this core (marks them as completed)
-
getCommitLock
public abstract Lock getCommitLock()
-
newIndexWriter
public abstract void newIndexWriter(SolrCore core, boolean rollback) throws IOException
Force the creation of a new IndexWriter using the settings from the given SolrCore.- Parameters:
rollback- close IndexWriter if false, else rollback- Throws:
IOException- If there is a low-level I/O error.
-
closeIndexWriter
public abstract void closeIndexWriter(SolrCore core, boolean rollback) throws IOException
Expert method that closes the IndexWriter - you must callopenIndexWriter(SolrCore)in a finally block after calling this method.- Parameters:
core- that the IW belongs torollback- true if IW should rollback rather than close- Throws:
IOException- If there is a low-level I/O error.
-
openIndexWriter
public abstract void openIndexWriter(SolrCore core) throws IOException
Expert method that opens the IndexWriter - you must callcloseIndexWriter(SolrCore, boolean)first, and then call this method in a finally block.- Parameters:
core- that the IW belongs to- Throws:
IOException- If there is a low-level I/O error.
-
getIndexWriter
public abstract RefCounted<org.apache.lucene.index.IndexWriter> getIndexWriter(SolrCore core) throws IOException
Get the current IndexWriter. If a new IndexWriter must be created, use the settings from the givenSolrCore.- Throws:
IOException- If there is a low-level I/O error.
-
rollbackIndexWriter
public abstract void rollbackIndexWriter(SolrCore core) throws IOException
Rollback the current IndexWriter. When creating the new IndexWriter use the settings from the givenSolrCore.- Throws:
IOException- If there is a low-level I/O error.
-
getMergePolicySort
public abstract org.apache.lucene.search.Sort getMergePolicySort() throws IOExceptionGet the current Sort of the current IndexWriter's MergePolicy..- Throws:
IOException- If there is a low-level I/O error.
-
getDirectoryFactory
public abstract DirectoryFactory getDirectoryFactory()
- Returns:
- the
DirectoryFactorythat should be used.
-
getRecoveryStrategyBuilder
public abstract RecoveryStrategy.Builder getRecoveryStrategyBuilder()
- Returns:
- the
RecoveryStrategy.Builderthat should be used.
-
doRecovery
public abstract void doRecovery(CoreContainer cc, CoreDescriptor cd)
-
cancelRecovery
public abstract void cancelRecovery()
-
close
public abstract void close(SolrCoreState.IndexWriterCloser closer)
-
getLeaderThrottle
public abstract ActionThrottle getLeaderThrottle()
- Returns:
- throttle to limit how fast a core attempts to become leader
-
getLastReplicateIndexSuccess
public abstract boolean getLastReplicateIndexSuccess()
-
setLastReplicateIndexSuccess
public abstract void setLastReplicateIndexSuccess(boolean success)
-
getRecoveryLock
public abstract Lock getRecoveryLock()
-
getTragicException
public Throwable getTragicException() throws IOException
- Throws:
IOException
-
-