protected static class CompactingMergeTask.AtomicUpdateCompactingMergeTask extends AbstractAtomicUpdateTask<Void>
The source view is pre-overflow (the last writes are on the old journal)
while the current view is post-overflow (reflects writes made since
overflow). What we are doing is replacing the pre-overflow history with
an IndexSegment
.
journal A view={A} ---- sync overflow begins ---- create journal B view={B,A} Begin build segment from view={A} (identified by the lastCommitTime) ---- sync overflow ends ---- ... build continues ... ... writes against view={B,A} ... index segment S0 complete (based on view={A}). ... atomic build update task runs: view={B,S0} ... writes continue.
AbstractTask.DelegateTask<T>, AbstractTask.InnerReadWriteTxServiceCallable<T>, AbstractTask.InnerWriteServiceCallable<T>, AbstractTask.ResubmitException
Modifier and Type | Field and Description |
---|---|
protected BuildResult |
buildResult |
protected UUID |
indexUUID
The expected UUID of the scale-out index.
|
DEBUG, INFO, log, resourceManager
checkpointNanoTime, concurrencyManager, isReadWriteTx, nanoTime_assignedWorker, nanoTime_beginWork, nanoTime_finishedWork, nanoTime_submitTask, readOnly, taskCounters, timestamp, transactionManager, tx
Constructor and Description |
---|
CompactingMergeTask.AtomicUpdateCompactingMergeTask(ResourceManager resourceManager,
IConcurrencyManager concurrencyManager,
String resource,
UUID indexUUID,
BuildResult buildResult,
Event updateEvent) |
Modifier and Type | Method and Description |
---|---|
protected Void |
doTask()
Atomic update.
|
assertSameIndex
toString
assertResource, assertRunning, assertUnisolated, call, clearLoggingContext, dropIndex, getCommitTime, getIndex, getJournal, getOnlyResource, getResource, getResourceManager, getTaskCounters, getTaskName, getTimestamp, isResource, registerIndex, setupLoggingContext, toString
protected final UUID indexUUID
protected final BuildResult buildResult
public CompactingMergeTask.AtomicUpdateCompactingMergeTask(ResourceManager resourceManager, IConcurrencyManager concurrencyManager, String resource, UUID indexUUID, BuildResult buildResult, Event updateEvent)
resourceManager
- concurrencyManager
- resource
- buildResult
- protected Void doTask() throws Exception
Atomic update.
doTask
in class AbstractTask<Void>
null
Exception
- The exception that will be thrown by AbstractTask.call()
iff the
operation fails.InterruptedException
- This exception SHOULD be thrown if
Thread.interrupted()
becomes true during
execution.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.