Class Transactional.AbstractTransactional
java.lang.Object
org.apache.cassandra.utils.concurrent.Transactional.AbstractTransactional
- All Implemented Interfaces:
AutoCloseable,Transactional
- Direct Known Subclasses:
CompactionAwareWriter,CompressionMetadata.Writer,LifecycleTransaction,SequentialWriter.TransactionalProxy,SortedTableWriter.AbstractIndexWriter,SSTableRewriter,SSTableTxnWriter,SSTableWriter.TransactionalProxy
- Enclosing interface:
- Transactional
public abstract static class Transactional.AbstractTransactional
extends Object
implements Transactional
A simple abstract implementation of Transactional behaviour.
In general this should be used as the base class for any transactional implementations.
If the implementation wraps any internal Transactional objects, it must proxy every
commit() and abort() call onto each internal object to ensure correct behaviour
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Transactional
Transactional.AbstractTransactional -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidabort()final Throwablerollback any effects of this transaction object graph; delegates first to doCleanup, then to doAbortfinal voidclose()final voidcommit()final Throwablecommit any effects of this transaction object graph, then cleanup; delegates first to doCommit, then to doCleanupprotected abstract Throwableprotected abstract Throwableprotected ThrowabledoPostCleanup(Throwable accumulate) perform an exception-safe post-abort cleanupprotected ThrowabledoPreCleanup(Throwable accumulate) perform an exception-safe pre-abort/commit cleanup; this will be run after prepareToCommit (so before commit), and before abortprotected abstract voidDo any preparatory work prior to commit.finish()convenience method to both prepareToCommit() and commit() in one operation; only of use to outer-most transactional object of an object graphfinal voidThe first phase of commit: delegates to doPrepare(), with valid state transition enforcement.state()
-
Constructor Details
-
AbstractTransactional
public AbstractTransactional()
-
-
Method Details
-
doCommit
-
doAbort
-
doPreCleanup
perform an exception-safe pre-abort/commit cleanup; this will be run after prepareToCommit (so before commit), and before abort -
doPostCleanup
perform an exception-safe post-abort cleanup -
doPrepare
protected abstract void doPrepare()Do any preparatory work prior to commit. This method should throw any exceptions that can be encountered during the finalization of the behaviour. -
commit
commit any effects of this transaction object graph, then cleanup; delegates first to doCommit, then to doCleanup- Specified by:
commitin interfaceTransactional
-
abort
rollback any effects of this transaction object graph; delegates first to doCleanup, then to doAbort- Specified by:
abortin interfaceTransactional
-
close
public final void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceTransactional
-
prepareToCommit
public final void prepareToCommit()The first phase of commit: delegates to doPrepare(), with valid state transition enforcement. This call should be propagated onto any child objects participating in the transaction- Specified by:
prepareToCommitin interfaceTransactional
-
finish
convenience method to both prepareToCommit() and commit() in one operation; only of use to outer-most transactional object of an object graph -
abort
public final void abort() -
commit
public final void commit() -
state
-