Package org.elasticsearch.index.engine
Class InternalEngine
- java.lang.Object
-
- org.elasticsearch.index.engine.Engine
-
- org.elasticsearch.index.engine.InternalEngine
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class InternalEngine extends Engine
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classInternalEngine.DeletionStrategyprotected static classInternalEngine.IndexingStrategy-
Nested classes/interfaces inherited from class org.elasticsearch.index.engine.Engine
Engine.CommitId, Engine.Delete, Engine.DeleteResult, Engine.EventListener, Engine.Get, Engine.GetResult, Engine.Index, Engine.IndexCommitRef, Engine.IndexResult, Engine.IndexThrottle, Engine.NoOp, Engine.NoOpLock, Engine.NoOpResult, Engine.Operation, Engine.Result, Engine.Searcher, Engine.SearcherScope, Engine.SyncedFlushResult, Engine.TranslogRecoveryRunner, Engine.Warmer
-
-
Field Summary
-
Fields inherited from class org.elasticsearch.index.engine.Engine
allocationId, engineConfig, eventListener, failedEngine, failEngineLock, HISTORY_UUID_KEY, isClosed, lastWriteNanos, logger, MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, MIN_RETAINED_SEQNO, readLock, rwl, shardId, store, SYNC_COMMIT_ID, writeLock
-
-
Constructor Summary
Constructors Constructor Description InternalEngine(EngineConfig engineConfig)
-
Method Summary
Modifier and Type Method Description Engine.IndexCommitRefacquireLastIndexCommit(boolean flushFirst)Snapshots the most recent index and returns a handle to it.java.io.CloseableacquireRetentionLock()Acquires a lock on the translog files and Lucene soft-deleted documents to prevent them from being trimmedEngine.IndexCommitRefacquireSafeIndexCommit()Snapshots the most recent safe index commit from the engine.voidactivateThrottling()Request that this engine throttle incoming indexing requests to one thread.protected booleanassertNonPrimaryOrigin(Engine.Operation operation)protected booleanassertPrimaryCanOptimizeAddDocument(Engine.Index index)protected booleanassertPrimaryIncomingSequenceNumber(Engine.Operation.Origin origin, long seqNo)protected voidcloseNoLock(java.lang.String reason, java.util.concurrent.CountDownLatch closedLatch)Closes the engine without acquiring the write lock.protected voidcommitIndexWriter(org.apache.lucene.index.IndexWriter writer, Translog translog, java.lang.String syncId)Commits the specified index writer.voiddeactivateThrottling()Reverses a previousEngine.activateThrottling()call.Engine.DeleteResultdelete(Engine.Delete delete)Perform document delete operation on the engineprotected InternalEngine.DeletionStrategydeletionStrategyForOperation(Engine.Delete delete)booleanensureTranslogSynced(java.util.stream.Stream<Translog.Location> locations)Ensures that all locations in the given stream have been written to the underlying storage.intestimateNumberOfHistoryOperations(java.lang.String source, MapperService mapperService, long startingSeqNo)Returns the estimated number of history operations whose seq# at least the provided seq# in this engine.intfillSeqNoGaps(long primaryTerm)Fills up the local checkpoints history with no-ops until the local checkpoint and the max seen sequence ID are identical.Engine.CommitIdflush(boolean force, boolean waitIfOngoing)Flushes the state of the engine including the transaction log, clearing memory.voidforceMerge(boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade, boolean upgradeOnlyAncientSegments)Triggers a forced merge on this engineEngine.GetResultget(Engine.Get get, java.util.function.BiFunction<java.lang.String,Engine.SearcherScope,Engine.Searcher> searcherFactory)java.lang.StringgetHistoryUUID()returns the history uuid for the enginelonggetIndexBufferRAMBytesUsed()How much heap is used that would be freed by a refresh.longgetIndexThrottleTimeInMillis()Returns the number of milliseconds this engine was under index throttling.protected org.apache.lucene.index.SegmentInfosgetLastCommittedSegmentInfos()longgetLastSyncedGlobalCheckpoint()Returns the latest global checkpoint value that has been persisted in the underlying storage (i.e.longgetLocalCheckpoint()longgetMaxSeenAutoIdTimestamp()Returns the maximum auto_id_timestamp of all append-only index requests have been processed by this engine or the auto_id_timestamp received from its primary shard viaEngine.updateMaxUnsafeAutoIdTimestamp(long).MergeStatsgetMergeStats()longgetMinRetainedSeqNo()Returns the minimum seqno that is retained in the Lucene index.protected org.apache.lucene.search.ReferenceManager<org.apache.lucene.search.IndexSearcher>getReferenceManager(Engine.SearcherScope scope)SeqNoStatsgetSeqNoStats(long globalCheckpoint)Translog.LocationgetTranslogLastWriteLocation()Returns the last location that the translog of this engine has written into.TranslogStatsgetTranslogStats()longgetWritingBytes()Returns how many bytes we are currently moving from indexing buffer to segments on diskprotected booleanhasBeenProcessedBefore(Engine.Operation op)Checks if the given operation has been processed in this engine or not.booleanhasCompleteOperationHistory(java.lang.String source, MapperService mapperService, long startingSeqNo)Checks if this engine has every operations sincestartingSeqNo(inclusive) in its history (either Lucene or translog)Engine.IndexResultindex(Engine.Index index)Perform document index operation on the engineprotected InternalEngine.IndexingStrategyindexingStrategyForOperation(Engine.Index index)booleanisRecovering()Returnstrueiff this engine is currently recovering from translog.booleanisThrottled()Returns thetrueiff this engine is currently under index throttling.booleanisTranslogSyncNeeded()Checks if the underlying storage sync is required.protected voidmarkSeqNoAsSeen(long seqNo)Marks the given seq_no as seen and advances the max_seq_no of this engine to at least that value.protected booleanmaybeFailEngine(java.lang.String source, java.lang.Exception e)Check whether the engine should be failedvoidmaybePruneDeletes()Tries to prune buffered deletes from the version map.Translog.SnapshotnewChangesSnapshot(java.lang.String source, MapperService mapperService, long fromSeqNo, long toSeqNo, boolean requiredFullRange)Creates a new history snapshot from Lucene for reading operations whose seqno in the requesting seqno range (both inclusive).Engine.NoOpResultnoOp(Engine.NoOp noOp)voidonSettingsChanged()protected InternalEngine.DeletionStrategyplanDeletionAsNonPrimary(Engine.Delete delete)protected InternalEngine.DeletionStrategyplanDeletionAsPrimary(Engine.Delete delete)protected InternalEngine.IndexingStrategyplanIndexingAsNonPrimary(Engine.Index index)protected InternalEngine.IndexingStrategyplanIndexingAsPrimary(Engine.Index index)protected java.util.Optional<java.lang.Exception>preFlightCheckForNoOp(Engine.NoOp noOp)Executes a pre-flight check for a given NoOp.Translog.SnapshotreadHistoryOperations(java.lang.String source, MapperService mapperService, long startingSeqNo)Creates a new history snapshot for reading operations since the provided seqno.InternalEnginerecoverFromTranslog(Engine.TranslogRecoveryRunner translogRecoveryRunner, long recoverUpToSeqNo)Performs recovery from the transaction log up torecoverUpToSeqNo(inclusive).voidrefresh(java.lang.String source)Synchronously refreshes the engine for new search operations to reflect the latest changes.protected voidrefreshIfNeeded(java.lang.String source, long requestingSeqNo)Refresh this engine **internally** iff the requesting seq_no is greater than the last refreshed checkpoint.voidreinitializeMaxSeqNoOfUpdatesOrDeletes()A primary shard calls this method to re-initialize the max_seq_no_of_updates marker using the max_seq_no from Lucene index and translog before replaying the local translog in its local recovery.intrestoreLocalHistoryFromTranslog(Engine.TranslogRecoveryRunner translogRecoveryRunner)This method replays translog to restore the Lucene index which might be reverted previously.voidrollTranslogGeneration()Rolls the translog generation and cleans unneeded.java.util.List<Segment>segments(boolean verbose)The list of segments in the engine.booleanshouldPeriodicallyFlush()Checks if this engine should be flushed periodically.booleanshouldRollTranslogGeneration()Tests whether or not the translog generation should be rolled to a new generation.voidskipTranslogRecovery()Do not replay translog operations, but make the engine be ready.Engine.SyncedFlushResultsyncFlush(java.lang.String syncId, Engine.CommitId expectedCommitId)Attempts to do a special commit where the given syncID is put into the commit data.voidsyncTranslog()voidtrimOperationsFromTranslog(long belowTerm, long aboveSeqNo)Trims translog for terms belowbelowTermand seq# aboveaboveSeqNovoidtrimUnreferencedTranslogFiles()checks and removes translog files that no longer need to be retained.voidupdateMaxUnsafeAutoIdTimestamp(long newTimestamp)Forces this engine to advance its max_unsafe_auto_id_timestamp marker to at least the given timestamp.voidwriteIndexingBuffer()Called when our engine is using too much heap and should move buffered indexed/deleted documents to disk.protected voidwriterSegmentStats(SegmentsStats stats)-
Methods inherited from class org.elasticsearch.index.engine.Engine
acquireSearcher, acquireSearcher, advanceMaxSeqNoOfUpdatesOrDeletes, close, commitStats, completionStats, config, docsStats, docStats, ensureOpen, ensureOpen, failEngine, flush, flushAndClose, forceMerge, getFromSearcher, getLastWriteNanos, getMaxSeqNoOfUpdatesOrDeletes, getSegmentInfo, guardedRamBytesUsed, isMergedSegment, refreshNeeded, segmentsStats, verifyEngineBeforeIndexClosing
-
-
-
-
Constructor Detail
-
InternalEngine
public InternalEngine(EngineConfig engineConfig)
-
-
Method Detail
-
restoreLocalHistoryFromTranslog
public int restoreLocalHistoryFromTranslog(Engine.TranslogRecoveryRunner translogRecoveryRunner) throws java.io.IOException
Description copied from class:EngineThis method replays translog to restore the Lucene index which might be reverted previously. This ensures that all acknowledged writes are restored correctly when this engine is promoted.- Specified by:
restoreLocalHistoryFromTranslogin classEngine- Returns:
- the number of translog operations have been recovered
- Throws:
java.io.IOException
-
fillSeqNoGaps
public int fillSeqNoGaps(long primaryTerm) throws java.io.IOExceptionDescription copied from class:EngineFills up the local checkpoints history with no-ops until the local checkpoint and the max seen sequence ID are identical.- Specified by:
fillSeqNoGapsin classEngine- Parameters:
primaryTerm- the shards primary term this engine was created for- Returns:
- the number of no-ops added
- Throws:
java.io.IOException
-
recoverFromTranslog
public InternalEngine recoverFromTranslog(Engine.TranslogRecoveryRunner translogRecoveryRunner, long recoverUpToSeqNo) throws java.io.IOException
Description copied from class:EnginePerforms recovery from the transaction log up torecoverUpToSeqNo(inclusive). This operation will close the engine if the recovery fails.- Specified by:
recoverFromTranslogin classEngine- Parameters:
translogRecoveryRunner- the translog recovery runnerrecoverUpToSeqNo- the upper bound, inclusive, of sequence number to be recovered- Throws:
java.io.IOException
-
skipTranslogRecovery
public void skipTranslogRecovery()
Description copied from class:EngineDo not replay translog operations, but make the engine be ready.- Specified by:
skipTranslogRecoveryin classEngine
-
isTranslogSyncNeeded
public boolean isTranslogSyncNeeded()
Description copied from class:EngineChecks if the underlying storage sync is required.- Specified by:
isTranslogSyncNeededin classEngine
-
ensureTranslogSynced
public boolean ensureTranslogSynced(java.util.stream.Stream<Translog.Location> locations) throws java.io.IOException
Description copied from class:EngineEnsures that all locations in the given stream have been written to the underlying storage.- Specified by:
ensureTranslogSyncedin classEngine- Throws:
java.io.IOException
-
syncTranslog
public void syncTranslog() throws java.io.IOException- Specified by:
syncTranslogin classEngine- Throws:
java.io.IOException
-
readHistoryOperations
public Translog.Snapshot readHistoryOperations(java.lang.String source, MapperService mapperService, long startingSeqNo) throws java.io.IOException
Creates a new history snapshot for reading operations since the provided seqno. The returned snapshot can be retrieved from either Lucene index or translog files.- Specified by:
readHistoryOperationsin classEngine- Throws:
java.io.IOException
-
estimateNumberOfHistoryOperations
public int estimateNumberOfHistoryOperations(java.lang.String source, MapperService mapperService, long startingSeqNo) throws java.io.IOExceptionReturns the estimated number of history operations whose seq# at least the provided seq# in this engine.- Specified by:
estimateNumberOfHistoryOperationsin classEngine- Throws:
java.io.IOException
-
getTranslogStats
public TranslogStats getTranslogStats()
- Specified by:
getTranslogStatsin classEngine
-
getTranslogLastWriteLocation
public Translog.Location getTranslogLastWriteLocation()
Description copied from class:EngineReturns the last location that the translog of this engine has written into.- Specified by:
getTranslogLastWriteLocationin classEngine
-
getHistoryUUID
public java.lang.String getHistoryUUID()
Description copied from class:Enginereturns the history uuid for the engine- Specified by:
getHistoryUUIDin classEngine
-
getWritingBytes
public long getWritingBytes()
Returns how many bytes we are currently moving from indexing buffer to segments on disk- Specified by:
getWritingBytesin classEngine
-
get
public Engine.GetResult get(Engine.Get get, java.util.function.BiFunction<java.lang.String,Engine.SearcherScope,Engine.Searcher> searcherFactory) throws EngineException
- Specified by:
getin classEngine- Throws:
EngineException
-
assertPrimaryCanOptimizeAddDocument
protected boolean assertPrimaryCanOptimizeAddDocument(Engine.Index index)
-
assertPrimaryIncomingSequenceNumber
protected boolean assertPrimaryIncomingSequenceNumber(Engine.Operation.Origin origin, long seqNo)
-
index
public Engine.IndexResult index(Engine.Index index) throws java.io.IOException
Description copied from class:EnginePerform document index operation on the engine- Specified by:
indexin classEngine- Parameters:
index- operation to perform- Returns:
Engine.IndexResultcontaining updated translog location, version and document specific failures Note: engine level failures (i.e. persistent engine failures) are thrown- Throws:
java.io.IOException
-
planIndexingAsNonPrimary
protected final InternalEngine.IndexingStrategy planIndexingAsNonPrimary(Engine.Index index) throws java.io.IOException
- Throws:
java.io.IOException
-
indexingStrategyForOperation
protected InternalEngine.IndexingStrategy indexingStrategyForOperation(Engine.Index index) throws java.io.IOException
- Throws:
java.io.IOException
-
planIndexingAsPrimary
protected final InternalEngine.IndexingStrategy planIndexingAsPrimary(Engine.Index index) throws java.io.IOException
- Throws:
java.io.IOException
-
delete
public Engine.DeleteResult delete(Engine.Delete delete) throws java.io.IOException
Description copied from class:EnginePerform document delete operation on the engine- Specified by:
deletein classEngine- Parameters:
delete- operation to perform- Returns:
Engine.DeleteResultcontaining updated translog location, version and document specific failures Note: engine level failures (i.e. persistent engine failures) are thrown- Throws:
java.io.IOException
-
deletionStrategyForOperation
protected InternalEngine.DeletionStrategy deletionStrategyForOperation(Engine.Delete delete) throws java.io.IOException
- Throws:
java.io.IOException
-
planDeletionAsNonPrimary
protected final InternalEngine.DeletionStrategy planDeletionAsNonPrimary(Engine.Delete delete) throws java.io.IOException
- Throws:
java.io.IOException
-
assertNonPrimaryOrigin
protected boolean assertNonPrimaryOrigin(Engine.Operation operation)
-
planDeletionAsPrimary
protected final InternalEngine.DeletionStrategy planDeletionAsPrimary(Engine.Delete delete) throws java.io.IOException
- Throws:
java.io.IOException
-
maybePruneDeletes
public void maybePruneDeletes()
Description copied from class:EngineTries to prune buffered deletes from the version map.- Specified by:
maybePruneDeletesin classEngine
-
noOp
public Engine.NoOpResult noOp(Engine.NoOp noOp) throws java.io.IOException
-
preFlightCheckForNoOp
protected java.util.Optional<java.lang.Exception> preFlightCheckForNoOp(Engine.NoOp noOp) throws java.io.IOException
Executes a pre-flight check for a given NoOp. If this method returns a non-empty result, the engine won't process this NoOp and returns a failure.- Throws:
java.io.IOException
-
refresh
public void refresh(java.lang.String source) throws EngineExceptionDescription copied from class:EngineSynchronously refreshes the engine for new search operations to reflect the latest changes.- Specified by:
refreshin classEngine- Throws:
EngineException
-
writeIndexingBuffer
public void writeIndexingBuffer() throws EngineExceptionDescription copied from class:EngineCalled when our engine is using too much heap and should move buffered indexed/deleted documents to disk.- Specified by:
writeIndexingBufferin classEngine- Throws:
EngineException
-
syncFlush
public Engine.SyncedFlushResult syncFlush(java.lang.String syncId, Engine.CommitId expectedCommitId) throws EngineException
Description copied from class:EngineAttempts to do a special commit where the given syncID is put into the commit data. The attempt succeeds if there are not pending writes in lucene and the current point is equal to the expected one.- Specified by:
syncFlushin classEngine- Parameters:
syncId- id of this syncexpectedCommitId- the expected value of- Returns:
- true if the sync commit was made, false o.w.
- Throws:
EngineException
-
shouldPeriodicallyFlush
public boolean shouldPeriodicallyFlush()
Description copied from class:EngineChecks if this engine should be flushed periodically. This check is mainly based on the uncommitted translog size and the translog flush threshold setting.- Specified by:
shouldPeriodicallyFlushin classEngine
-
flush
public Engine.CommitId flush(boolean force, boolean waitIfOngoing) throws EngineException
Description copied from class:EngineFlushes the state of the engine including the transaction log, clearing memory.- Specified by:
flushin classEngine- Parameters:
force- iftruea lucene commit is executed even if no changes need to be committed.waitIfOngoing- iftruethis call will block until all currently running flushes have finished. Otherwise this call will return without blocking.- Returns:
- the commit Id for the resulting commit
- Throws:
EngineException
-
rollTranslogGeneration
public void rollTranslogGeneration() throws EngineExceptionDescription copied from class:EngineRolls the translog generation and cleans unneeded.- Specified by:
rollTranslogGenerationin classEngine- Throws:
EngineException
-
trimUnreferencedTranslogFiles
public void trimUnreferencedTranslogFiles() throws EngineExceptionDescription copied from class:Enginechecks and removes translog files that no longer need to be retained. SeeTranslogDeletionPolicyfor details- Specified by:
trimUnreferencedTranslogFilesin classEngine- Throws:
EngineException
-
shouldRollTranslogGeneration
public boolean shouldRollTranslogGeneration()
Description copied from class:EngineTests whether or not the translog generation should be rolled to a new generation. This test is based on the size of the current generation compared to the configured generation threshold size.- Specified by:
shouldRollTranslogGenerationin classEngine- Returns:
trueif the current generation should be rolled to a new generation
-
trimOperationsFromTranslog
public void trimOperationsFromTranslog(long belowTerm, long aboveSeqNo) throws EngineExceptionDescription copied from class:EngineTrims translog for terms belowbelowTermand seq# aboveaboveSeqNo- Specified by:
trimOperationsFromTranslogin classEngine- Throws:
EngineException- See Also:
Translog.trimOperations(long, long)
-
forceMerge
public void forceMerge(boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade, boolean upgradeOnlyAncientSegments) throws EngineException, java.io.IOExceptionDescription copied from class:EngineTriggers a forced merge on this engine- Specified by:
forceMergein classEngine- Throws:
EngineExceptionjava.io.IOException
-
acquireLastIndexCommit
public Engine.IndexCommitRef acquireLastIndexCommit(boolean flushFirst) throws EngineException
Description copied from class:EngineSnapshots the most recent index and returns a handle to it. If needed will try and "commit" the lucene index to make sure we have a "fresh" copy of the files to snapshot.- Specified by:
acquireLastIndexCommitin classEngine- Parameters:
flushFirst- indicates whether the engine should flush before returning the snapshot- Throws:
EngineException
-
acquireSafeIndexCommit
public Engine.IndexCommitRef acquireSafeIndexCommit() throws EngineException
Description copied from class:EngineSnapshots the most recent safe index commit from the engine.- Specified by:
acquireSafeIndexCommitin classEngine- Throws:
EngineException
-
maybeFailEngine
protected boolean maybeFailEngine(java.lang.String source, java.lang.Exception e)Description copied from class:EngineCheck whether the engine should be failed- Overrides:
maybeFailEnginein classEngine
-
getLastCommittedSegmentInfos
protected org.apache.lucene.index.SegmentInfos getLastCommittedSegmentInfos()
- Specified by:
getLastCommittedSegmentInfosin classEngine
-
writerSegmentStats
protected final void writerSegmentStats(SegmentsStats stats)
- Overrides:
writerSegmentStatsin classEngine
-
getIndexBufferRAMBytesUsed
public long getIndexBufferRAMBytesUsed()
Description copied from class:EngineHow much heap is used that would be freed by a refresh. Note that this may throwAlreadyClosedException.- Specified by:
getIndexBufferRAMBytesUsedin classEngine
-
segments
public java.util.List<Segment> segments(boolean verbose)
Description copied from class:EngineThe list of segments in the engine.
-
closeNoLock
protected final void closeNoLock(java.lang.String reason, java.util.concurrent.CountDownLatch closedLatch)Closes the engine without acquiring the write lock. This should only be called while the write lock is hold or in a disaster condition ie. if the engine is failed.- Specified by:
closeNoLockin classEngine
-
getReferenceManager
protected final org.apache.lucene.search.ReferenceManager<org.apache.lucene.search.IndexSearcher> getReferenceManager(Engine.SearcherScope scope)
- Specified by:
getReferenceManagerin classEngine
-
activateThrottling
public void activateThrottling()
Description copied from class:EngineRequest that this engine throttle incoming indexing requests to one thread. Must be matched by a later call toEngine.deactivateThrottling().- Specified by:
activateThrottlingin classEngine
-
deactivateThrottling
public void deactivateThrottling()
Description copied from class:EngineReverses a previousEngine.activateThrottling()call.- Specified by:
deactivateThrottlingin classEngine
-
isThrottled
public boolean isThrottled()
Description copied from class:EngineReturns thetrueiff this engine is currently under index throttling.- Specified by:
isThrottledin classEngine- See Also:
Engine.getIndexThrottleTimeInMillis()
-
getIndexThrottleTimeInMillis
public long getIndexThrottleTimeInMillis()
Description copied from class:EngineReturns the number of milliseconds this engine was under index throttling.- Specified by:
getIndexThrottleTimeInMillisin classEngine
-
commitIndexWriter
protected void commitIndexWriter(org.apache.lucene.index.IndexWriter writer, Translog translog, @Nullable java.lang.String syncId) throws java.io.IOExceptionCommits the specified index writer.- Parameters:
writer- the index writer to committranslog- the translogsyncId- the sync flush ID (nullif not committing a synced flush)- Throws:
java.io.IOException- if an I/O exception occurs committing the specfied writer
-
onSettingsChanged
public void onSettingsChanged()
- Overrides:
onSettingsChangedin classEngine
-
getMergeStats
public MergeStats getMergeStats()
- Overrides:
getMergeStatsin classEngine
-
getLastSyncedGlobalCheckpoint
public long getLastSyncedGlobalCheckpoint()
Description copied from class:EngineReturns the latest global checkpoint value that has been persisted in the underlying storage (i.e. translog's checkpoint)- Specified by:
getLastSyncedGlobalCheckpointin classEngine
-
getLocalCheckpoint
public long getLocalCheckpoint()
- Specified by:
getLocalCheckpointin classEngine- Returns:
- the local checkpoint for this Engine
-
markSeqNoAsSeen
protected final void markSeqNoAsSeen(long seqNo)
Marks the given seq_no as seen and advances the max_seq_no of this engine to at least that value.
-
hasBeenProcessedBefore
protected final boolean hasBeenProcessedBefore(Engine.Operation op)
Checks if the given operation has been processed in this engine or not.- Returns:
- true if the given operation was processed; otherwise false.
-
getSeqNoStats
public SeqNoStats getSeqNoStats(long globalCheckpoint)
- Specified by:
getSeqNoStatsin classEngine- Returns:
- a
SeqNoStatsobject, using local state and the supplied global checkpoint
-
newChangesSnapshot
public Translog.Snapshot newChangesSnapshot(java.lang.String source, MapperService mapperService, long fromSeqNo, long toSeqNo, boolean requiredFullRange) throws java.io.IOException
Description copied from class:EngineCreates a new history snapshot from Lucene for reading operations whose seqno in the requesting seqno range (both inclusive). This feature requires soft-deletes enabled. If soft-deletes are disabled, this method will throw anIllegalStateException.- Specified by:
newChangesSnapshotin classEngine- Throws:
java.io.IOException
-
hasCompleteOperationHistory
public boolean hasCompleteOperationHistory(java.lang.String source, MapperService mapperService, long startingSeqNo) throws java.io.IOExceptionDescription copied from class:EngineChecks if this engine has every operations sincestartingSeqNo(inclusive) in its history (either Lucene or translog)- Specified by:
hasCompleteOperationHistoryin classEngine- Throws:
java.io.IOException
-
getMinRetainedSeqNo
public final long getMinRetainedSeqNo()
Returns the minimum seqno that is retained in the Lucene index. Operations whose seq# are at least this value should exist in the Lucene index.- Specified by:
getMinRetainedSeqNoin classEngine- Returns:
- the minimum retained sequence number
-
acquireRetentionLock
public java.io.Closeable acquireRetentionLock()
Description copied from class:EngineAcquires a lock on the translog files and Lucene soft-deleted documents to prevent them from being trimmed- Specified by:
acquireRetentionLockin classEngine
-
isRecovering
public boolean isRecovering()
Description copied from class:EngineReturnstrueiff this engine is currently recovering from translog.- Overrides:
isRecoveringin classEngine
-
refreshIfNeeded
protected final void refreshIfNeeded(java.lang.String source, long requestingSeqNo)Refresh this engine **internally** iff the requesting seq_no is greater than the last refreshed checkpoint.
-
getMaxSeenAutoIdTimestamp
public final long getMaxSeenAutoIdTimestamp()
Description copied from class:EngineReturns the maximum auto_id_timestamp of all append-only index requests have been processed by this engine or the auto_id_timestamp received from its primary shard viaEngine.updateMaxUnsafeAutoIdTimestamp(long). Notes this method returns the auto_id_timestamp of all append-only requests, not max_unsafe_auto_id_timestamp.- Overrides:
getMaxSeenAutoIdTimestampin classEngine
-
updateMaxUnsafeAutoIdTimestamp
public final void updateMaxUnsafeAutoIdTimestamp(long newTimestamp)
Description copied from class:EngineForces this engine to advance its max_unsafe_auto_id_timestamp marker to at least the given timestamp. The engine will disable optimization for all append-only whose timestamp at mostnewTimestamp.- Specified by:
updateMaxUnsafeAutoIdTimestampin classEngine
-
reinitializeMaxSeqNoOfUpdatesOrDeletes
public void reinitializeMaxSeqNoOfUpdatesOrDeletes()
Description copied from class:EngineA primary shard calls this method to re-initialize the max_seq_no_of_updates marker using the max_seq_no from Lucene index and translog before replaying the local translog in its local recovery.- Specified by:
reinitializeMaxSeqNoOfUpdatesOrDeletesin classEngine
-
-