com.bigdata.journal
Class AbstractTask.InnerWriteServiceCallable<T>

java.lang.Object
  extended by com.bigdata.journal.AbstractTask.DelegateTask<T>
      extended by com.bigdata.journal.AbstractTask.InnerWriteServiceCallable<T>
All Implemented Interfaces:
ITask<T>, Callable<T>
Enclosing class:
AbstractTask<T>

protected static class AbstractTask.InnerWriteServiceCallable<T>
extends AbstractTask.DelegateTask<T>

An instance of this class is used as the delegate for a LockManagerTask in order to coordinate the acquisition of locks with the LockManager before the task can execute and to release locks after the task has completed (whether it succeeds or fails).

Note: This inner class delegates the execution of the task to AbstractTask.doTask() on the outer class.

Note: If there is only a single writer thread then the lock system essentially does nothing. When there are multiple writer threads the lock system imposes a partial ordering on the writers that ensures that writes on a given named index are single-threaded and that deadlocks do not prevent tasks from progressing. If there is strong lock contention then writers will be more or less serialized. FIXME javadoc update to reflect the NonBlockingLockManager

Version:
$Id: AbstractTask.java 2265 2009-10-26 12:51:06Z thompsonbry $
Author:
Bryan Thompson

Field Summary
 
Fields inherited from class com.bigdata.journal.AbstractTask.DelegateTask
delegate
 
Method Summary
 T call()
          Note: Locks on the named indices are ONLY held during this call.
 
Methods inherited from class com.bigdata.journal.AbstractTask.DelegateTask
getIndex, getJournal, getOnlyResource, getResource, getResourceManager, getTaskCounters, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

call

public T call()
       throws Exception
Note: Locks on the named indices are ONLY held during this call.

Throws:
Exception


Copyright © 2006-2009 SYSTAP, LLC. All Rights Reserved.