protected static class IncrementalBuildTask.AtomicUpdateIncrementalBuildTask extends AbstractAtomicUpdateTask<IResourceMetadata[]>
The source is an IndexSegment
that was built from the mutable
BTree
associated with the lastCommitTime on old journal of some
index partition. What we are doing is replacing the role of that
BTree
on the closed out journal with the IndexSegment
.
Note that the IndexSegment
contains the same data as the
BTree
as of the lastCommitTime. The new view (as defined by this
task) will be selected when the desired view is GTE the lastCommitTime.
The old view will be used whenever the desired view is LT the
lastCommitTime.
journal A view={A,...} ---- sync overflow begins ---- create journal B view={B,A,...} Begin incremental build of segment from A (just the BTree state as identified by the lastCommitTime) ---- sync overflow ends ---- ... build continues ... ... writes against view={B,A,...} are written on B. ... index segment S0 complete (based on A). ... atomic 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 |
---|
IncrementalBuildTask.AtomicUpdateIncrementalBuildTask(ResourceManager resourceManager,
IConcurrencyManager concurrencyManager,
String resource,
UUID indexUUID,
BuildResult buildResult,
Event parentEvent) |
Modifier and Type | Method and Description |
---|---|
protected IResourceMetadata[] |
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 IncrementalBuildTask.AtomicUpdateIncrementalBuildTask(ResourceManager resourceManager, IConcurrencyManager concurrencyManager, String resource, UUID indexUUID, BuildResult buildResult, Event parentEvent)
resourceManager
- concurrencyManager
- resource
- buildResult
- protected IResourceMetadata[] doTask() throws Exception
Atomic update.
doTask
in class AbstractTask<IResourceMetadata[]>
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.