com.bigdata.resources
Class CompactingMergeTask.AtomicUpdateCompactingMergeTask

java.lang.Object
  extended by com.bigdata.journal.AbstractTask<T>
      extended by com.bigdata.resources.AbstractResourceManagerTask<T>
          extended by com.bigdata.resources.AbstractAtomicUpdateTask<Void>
              extended by com.bigdata.resources.CompactingMergeTask.AtomicUpdateCompactingMergeTask
All Implemented Interfaces:
ITask<Void>, Callable<Void>
Enclosing class:
CompactingMergeTask

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.
 

Version:
$Id: CompactingMergeTask.java 3343 2010-07-29 14:55:40Z thompsonbry $
Author:
Bryan Thompson

Nested Class Summary
 
Nested classes/interfaces inherited from class com.bigdata.journal.AbstractTask
AbstractTask.DelegateTask<T>, AbstractTask.InnerReadWriteTxServiceCallable, AbstractTask.InnerWriteServiceCallable<T>, AbstractTask.ResubmitException
 
Field Summary
protected  BuildResult buildResult
           
protected  UUID indexUUID
          The expected UUID of the scale-out index.
 
Fields inherited from class com.bigdata.resources.AbstractResourceManagerTask
DEBUG, INFO, log, resourceManager
 
Fields inherited from class com.bigdata.journal.AbstractTask
checkpointNanoTime, concurrencyManager, isReadWriteTx, nanoTime_assignedWorker, nanoTime_beginWork, nanoTime_finishedWork, nanoTime_submitTask, readOnly, taskCounters, timestamp, transactionManager, tx
 
Constructor Summary
CompactingMergeTask.AtomicUpdateCompactingMergeTask(ResourceManager resourceManager, IConcurrencyManager concurrencyManager, String resource, UUID indexUUID, BuildResult buildResult, Event updateEvent)
           
 
Method Summary
protected  Void doTask()
           Atomic update.
 
Methods inherited from class com.bigdata.resources.AbstractAtomicUpdateTask
assertSameIndex
 
Methods inherited from class com.bigdata.resources.AbstractResourceManagerTask
toString
 
Methods inherited from class com.bigdata.journal.AbstractTask
assertResource, assertRunning, assertUnisolated, call, clearLoggingContext, dropIndex, getCommitTime, getIndex, getJournal, getOnlyResource, getResource, getResourceManager, getTaskCounters, getTaskName, getTimestamp, isResource, registerIndex, setupLoggingContext, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

indexUUID

protected final UUID indexUUID
The expected UUID of the scale-out index.


buildResult

protected final BuildResult buildResult
Constructor Detail

CompactingMergeTask.AtomicUpdateCompactingMergeTask

public CompactingMergeTask.AtomicUpdateCompactingMergeTask(ResourceManager resourceManager,
                                                           IConcurrencyManager concurrencyManager,
                                                           String resource,
                                                           UUID indexUUID,
                                                           BuildResult buildResult,
                                                           Event updateEvent)
Parameters:
resourceManager -
concurrencyManager -
resource -
buildResult -
Method Detail

doTask

protected Void doTask()
               throws Exception

Atomic update.

Specified by:
doTask in class AbstractTask<Void>
Returns:
null
Throws:
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-2011 SYSTAP, LLC. All Rights Reserved.