public class LockingInterceptor
extends org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor
NonTransactionalLockingInterceptor,
async replication does not work in combination with synchronous replication: sync replication
relies on locking to order writes on backup while async replication relies on FIFO-ordering
from primary to backup. If these two combine, there's a possibility that on backup two modifications
modifications will proceed concurrently.
Similar issue threatens consistency when the command has Flag.CACHE_MODE_LOCAL
- these commands don't acquire locks either.
Therefore, this interceptor locks the entry all the time. UnorderedDistributionInterceptor does not forward
the message from non-origin to any other node, and the distribution interceptor won't block on RPC but will return
CompletableFuture and we'll wait for it here.| Constructor and Description |
|---|
LockingInterceptor() |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.Object |
visitDataWriteCommand(org.infinispan.context.InvocationContext ctx,
org.infinispan.commands.write.DataWriteCommand command) |
getLog, visitDataReadCommand, visitGetAllCommand, visitPutMapCommandcleanLocksAndRethrow, getLockTimeoutMillis, lockAllAndRecord, lockAllAndRecord, lockAndRecord, setDependencies, shouldLockKey, visitClearCommand, visitGetCacheEntryCommand, visitGetKeyValueCommand, visitInvalidateCommand, visitInvalidateL1Command, visitNonTxDataWriteCommand, visitPutKeyValueCommand, visitReadWriteKeyCommand, visitReadWriteKeyValueCommand, visitRemoveCommand, visitReplaceCommand, visitWriteOnlyKeyCommand, visitWriteOnlyKeyValueCommandgetCacheWithFlags, getLockAcquisitionTimeout, getNext, handleDefault, hasNext, hasSkipLocking, injectConfiguration, invokeNextInterceptor, setNextvisitApplyDeltaCommand, visitCollection, visitCommitCommand, visitDistributedExecuteCommand, visitEntrySetCommand, visitEvictCommand, visitGetKeysInGroupCommand, visitKeySetCommand, visitLockControlCommand, visitPrepareCommand, visitReadOnlyKeyCommand, visitReadOnlyManyCommand, visitReadWriteManyCommand, visitReadWriteManyEntriesCommand, visitRollbackCommand, visitSizeCommand, visitUnknownCommand, visitWriteOnlyManyCommand, visitWriteOnlyManyEntriesCommandprotected java.lang.Object visitDataWriteCommand(org.infinispan.context.InvocationContext ctx,
org.infinispan.commands.write.DataWriteCommand command)
throws java.lang.Throwable
visitDataWriteCommand in class org.infinispan.interceptors.locking.NonTransactionalLockingInterceptorjava.lang.ThrowableCopyright © 2001-2018 Red Hat, Inc. All Rights Reserved.