public class TriangleDistributionInterceptor extends BaseDistributionInterceptor
It is implemented based on the Triangle algorithm.
The GetKeyValueCommand reads the value locally if it is available (the node is an owner or the value is
stored in L1). If it isn't available, a remote request is made. The DataWriteCommand is performed as follow:
BackupWriteCommand to the backup owners; releases the lock; sends the
SuccessfulResponse or UnsuccessfulResponse back to the originator.BackupAckCommand back to the originator.PutMapCommand is performed in a similar way: BackupMultiKeyAckCommand to the originator.CommandAckCollector.
If a topology changes while a command is executed, an OutdatedTopologyException is thrown. The StateTransferInterceptor will catch it and retries the command.
TODO: finish the wiki page and add a link to it!
BaseDistributionInterceptor.ReadManyCommandHelper<C extends VisitableCommand>, BaseDistributionInterceptor.ReadOnlyManyHelperClusteringInterceptor.ClusteredGetAllFutureexpirationManager, isL1Enabled, isReplicated, keyPartitioner, rvrl, timeServicecf, dataContainer, distributionManager, entryFactory, lockManagercomponentRegistry, defaultSynchronous, rpcManagercacheConfiguration| Constructor and Description |
|---|
TriangleDistributionInterceptor() |
checkTopologyId, configure, getLog, handleFunctionalReadManyCommand, handleNonTxWriteCommand, handleRemotelyRetrievedKeys, invokeRemotely, primaryReturnHandler, readNeedsRemoteValue, remoteGetMany, remoteGetSingleKey, remoteReadOnlyCommand, retrieveDistributionInfo, unwrapFunctionalManyResultOnOrigin, unwrapFunctionalResultOnOrigin, visitClearCommand, visitGetAllCommand, visitGetCacheEntryCommand, visitGetKeysInGroupCommand, visitGetKeyValueCommand, visitReadOnlyKeyCommand, visitReadOnlyManyCommand, wrapFunctionalManyResultOnNonOrigin, wrapFunctionalResultOnNonOriginOnReturn, wrapRemoteEntrygetSuccessfulResponseOrFail, unexpectedinit, isLocalModeForced, isSynchronous, shouldInvokeRemoteTxCommand, transactionRemotelyPreparedhandleDefault, visitCommand, visitCommitCommand, visitEntrySetCommand, visitEvictCommand, visitInvalidateCommand, visitInvalidateL1Command, visitKeySetCommand, visitLockControlCommand, visitPrepareCommand, visitRollbackCommand, visitSizeCommand, visitUnknownCommandasyncInvokeNext, asyncInvokeNext, asyncInvokeNext, asyncValue, delayedNull, delayedValue, delayedValue, invokeNext, invokeNextAndExceptionally, invokeNextAndFinally, invokeNextAndHandle, invokeNextThenAccept, invokeNextThenApply, isSuccessfullyDone, makeStage, setNextInterceptor, valueOrExceptionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitRemoveExpiredCommandpublic void start()
public Object visitPutKeyValueCommand(InvocationContext ctx, PutKeyValueCommand command) throws Throwable
visitPutKeyValueCommand in interface VisitorvisitPutKeyValueCommand in class DDAsyncInterceptorThrowablepublic Object visitRemoveCommand(InvocationContext ctx, RemoveCommand command) throws Throwable
visitRemoveCommand in interface VisitorvisitRemoveCommand in class DDAsyncInterceptorThrowablepublic Object visitReplaceCommand(InvocationContext ctx, ReplaceCommand command) throws Throwable
visitReplaceCommand in interface VisitorvisitReplaceCommand in class DDAsyncInterceptorThrowablepublic Object visitComputeCommand(InvocationContext ctx, ComputeCommand command) throws Throwable
visitComputeCommand in interface VisitorvisitComputeCommand in class DDAsyncInterceptorThrowablepublic Object visitComputeIfAbsentCommand(InvocationContext ctx, ComputeIfAbsentCommand command) throws Throwable
visitComputeIfAbsentCommand in interface VisitorvisitComputeIfAbsentCommand in class DDAsyncInterceptorThrowablepublic Object visitReadWriteKeyValueCommand(InvocationContext ctx, ReadWriteKeyValueCommand command) throws Throwable
visitReadWriteKeyValueCommand in interface VisitorvisitReadWriteKeyValueCommand in class DDAsyncInterceptorThrowablepublic Object visitReadWriteKeyCommand(InvocationContext ctx, ReadWriteKeyCommand command) throws Throwable
visitReadWriteKeyCommand in interface VisitorvisitReadWriteKeyCommand in class DDAsyncInterceptorThrowablepublic Object visitWriteOnlyKeyValueCommand(InvocationContext ctx, WriteOnlyKeyValueCommand command) throws Throwable
visitWriteOnlyKeyValueCommand in interface VisitorvisitWriteOnlyKeyValueCommand in class DDAsyncInterceptorThrowablepublic Object visitWriteOnlyKeyCommand(InvocationContext ctx, WriteOnlyKeyCommand command) throws Throwable
visitWriteOnlyKeyCommand in interface VisitorvisitWriteOnlyKeyCommand in class DDAsyncInterceptorThrowablepublic Object visitPutMapCommand(InvocationContext ctx, PutMapCommand command) throws Throwable
visitPutMapCommand in interface VisitorvisitPutMapCommand in class DDAsyncInterceptorThrowablepublic Object visitWriteOnlyManyEntriesCommand(InvocationContext ctx, WriteOnlyManyEntriesCommand command)
visitWriteOnlyManyEntriesCommand in interface VisitorvisitWriteOnlyManyEntriesCommand in class DDAsyncInterceptorpublic Object visitWriteOnlyManyCommand(InvocationContext ctx, WriteOnlyManyCommand command)
visitWriteOnlyManyCommand in interface VisitorvisitWriteOnlyManyCommand in class DDAsyncInterceptorpublic Object visitReadWriteManyCommand(InvocationContext ctx, ReadWriteManyCommand command) throws Throwable
visitReadWriteManyCommand in interface VisitorvisitReadWriteManyCommand in class DDAsyncInterceptorThrowablepublic Object visitReadWriteManyEntriesCommand(InvocationContext ctx, ReadWriteManyEntriesCommand command) throws Throwable
visitReadWriteManyEntriesCommand in interface VisitorvisitReadWriteManyEntriesCommand in class DDAsyncInterceptorThrowableCopyright © 2022 JBoss by Red Hat. All rights reserved.