Class TotalOrderVersionedDistributionInterceptor
- java.lang.Object
-
- org.infinispan.interceptors.BaseAsyncInterceptor
-
- org.infinispan.interceptors.DDAsyncInterceptor
-
- org.infinispan.interceptors.impl.BaseRpcInterceptor
-
- org.infinispan.interceptors.impl.ClusteringInterceptor
-
- org.infinispan.interceptors.distribution.BaseDistributionInterceptor
-
- org.infinispan.interceptors.distribution.TxDistributionInterceptor
-
- org.infinispan.interceptors.distribution.VersionedDistributionInterceptor
-
- org.infinispan.interceptors.totalorder.TotalOrderVersionedDistributionInterceptor
-
- All Implemented Interfaces:
org.infinispan.commands.Visitor
,AsyncInterceptor
public class TotalOrderVersionedDistributionInterceptor extends VersionedDistributionInterceptor
This interceptor is used in total order in distributed mode when the write skew check is enabled. After sending the prepare through TOA (Total Order Anycast), it blocks the execution thread until the transaction outcome is known (i.e., the write skew check passes in all keys owners)- Author:
- Pedro Ruivo
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.infinispan.interceptors.distribution.BaseDistributionInterceptor
BaseDistributionInterceptor.ReadManyCommandHelper<C>, BaseDistributionInterceptor.ReadOnlyManyHelper
-
-
Field Summary
-
Fields inherited from class org.infinispan.interceptors.distribution.BaseDistributionInterceptor
expirationManager, isL1Enabled, isReplicated, keyPartitioner, rvrl, timeService
-
Fields inherited from class org.infinispan.interceptors.impl.ClusteringInterceptor
cf, dataContainer, distributionManager, entryFactory, lockManager
-
Fields inherited from class org.infinispan.interceptors.impl.BaseRpcInterceptor
defaultSynchronous, rpcManager
-
Fields inherited from class org.infinispan.interceptors.BaseAsyncInterceptor
cacheConfiguration
-
-
Constructor Summary
Constructors Constructor Description TotalOrderVersionedDistributionInterceptor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected LocalizedCacheTopology
checkTopologyId(org.infinispan.commands.TopologyAffectedCommand command)
protected org.infinispan.util.logging.Log
getLog()
protected CompletionStage<Object>
prepareOnAffectedNodes(org.infinispan.context.impl.TxInvocationContext<?> ctx, org.infinispan.commands.tx.PrepareCommand command, Collection<Address> recipients)
void
start()
Object
visitCommitCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.CommitCommand command)
Object
visitRollbackCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.RollbackCommand command)
-
Methods inherited from class org.infinispan.interceptors.distribution.VersionedDistributionInterceptor
unwrapFunctionalManyResultOnOrigin, unwrapFunctionalResultOnOrigin, wrapFunctionalManyResultOnNonOrigin, wrapFunctionalResultOnNonOriginOnReturn, wrapRemoteEntry
-
Methods inherited from class org.infinispan.interceptors.distribution.TxDistributionInterceptor
checkTxCommandResponses, configure, handleRemotelyRetrievedKeys, handleTxFunctionalCommand, handleTxWriteManyCommand, handleTxWriteManyEntriesCommand, remoteGetSingleKey, remoteReadOnlyCommand, visitComputeCommand, visitComputeIfAbsentCommand, visitLockControlCommand, visitPrepareCommand, visitPutKeyValueCommand, visitPutMapCommand, visitReadOnlyManyCommand, visitReadWriteKeyCommand, visitReadWriteKeyValueCommand, visitReadWriteManyCommand, visitReadWriteManyEntriesCommand, visitRemoveCommand, visitReplaceCommand, visitWriteOnlyKeyCommand, visitWriteOnlyKeyValueCommand, visitWriteOnlyManyCommand, visitWriteOnlyManyEntriesCommand
-
Methods inherited from class org.infinispan.interceptors.distribution.BaseDistributionInterceptor
handleFunctionalReadManyCommand, handleNonTxWriteCommand, invokeRemotely, readNeedsRemoteValue, remoteGetMany, retrieveDistributionInfo, visitClearCommand, visitGetAllCommand, visitGetCacheEntryCommand, visitGetKeysInGroupCommand, visitGetKeyValueCommand, visitReadOnlyKeyCommand, visitSizeCommand
-
Methods inherited from class org.infinispan.interceptors.impl.ClusteringInterceptor
getSuccessfulResponseOrFail, unexpected
-
Methods inherited from class org.infinispan.interceptors.impl.BaseRpcInterceptor
init, isLocalModeForced, isSynchronous, shouldInvokeRemoteTxCommand, shouldTotalOrderRollbackBeInvokedRemotely, totalOrderPrepare, totalOrderTxCommit, totalOrderTxRollback, transactionRemotelyPrepared
-
Methods inherited from class org.infinispan.interceptors.DDAsyncInterceptor
handleDefault, visitCommand, visitDistributedExecuteCommand, visitEntrySetCommand, visitEvictCommand, visitInvalidateCommand, visitInvalidateL1Command, visitKeySetCommand, visitUnknownCommand
-
Methods inherited from class org.infinispan.interceptors.BaseAsyncInterceptor
asyncInvokeNext, asyncInvokeNext, asyncInvokeNext, asyncValue, delayedValue, delayedValue, invokeNext, invokeNextAndExceptionally, invokeNextAndFinally, invokeNextAndHandle, invokeNextThenAccept, invokeNextThenApply, isSuccessfullyDone, makeStage, setNextInterceptor, valueOrException
-
-
-
-
Method Detail
-
start
public void start()
-
visitRollbackCommand
public Object visitRollbackCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.RollbackCommand command) throws Throwable
- Specified by:
visitRollbackCommand
in interfaceorg.infinispan.commands.Visitor
- Overrides:
visitRollbackCommand
in classTxDistributionInterceptor
- Throws:
Throwable
-
visitCommitCommand
public Object visitCommitCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.CommitCommand command) throws Throwable
- Specified by:
visitCommitCommand
in interfaceorg.infinispan.commands.Visitor
- Overrides:
visitCommitCommand
in classTxDistributionInterceptor
- Throws:
Throwable
-
prepareOnAffectedNodes
protected CompletionStage<Object> prepareOnAffectedNodes(org.infinispan.context.impl.TxInvocationContext<?> ctx, org.infinispan.commands.tx.PrepareCommand command, Collection<Address> recipients)
- Overrides:
prepareOnAffectedNodes
in classVersionedDistributionInterceptor
-
checkTopologyId
protected LocalizedCacheTopology checkTopologyId(org.infinispan.commands.TopologyAffectedCommand command)
- Overrides:
checkTopologyId
in classBaseDistributionInterceptor
-
getLog
protected org.infinispan.util.logging.Log getLog()
- Overrides:
getLog
in classVersionedDistributionInterceptor
-
-