Interface PendingLockManager
- All Known Implementing Classes:
DefaultPendingLockManager
,NoOpPendingLockManager
public interface PendingLockManager
A manager that checks and waits for older topology transaction with conflicting keys.
- Since:
- 8.0
- Author:
- Pedro Ruivo
-
Method Summary
Modifier and TypeMethodDescriptionlong
awaitPendingTransactionsForAllKeys
(TxInvocationContext<?> ctx, Collection<Object> keys, long time, TimeUnit unit) Deprecated, for removal: This API element is subject to removal in a future version.Since 10.0, the blocking variants will be removedlong
awaitPendingTransactionsForKey
(TxInvocationContext<?> ctx, Object key, long time, TimeUnit unit) Deprecated, for removal: This API element is subject to removal in a future version.Since 10.0, the blocking variants will be removedcheckPendingTransactionsForKey
(TxInvocationContext<?> ctx, Object key, long time, TimeUnit unit) Same asawaitPendingTransactionsForKey(TxInvocationContext, Object, long, TimeUnit)
but non-blocking.checkPendingTransactionsForKeys
(TxInvocationContext<?> ctx, Collection<Object> keys, long time, TimeUnit unit) Same asawaitPendingTransactionsForAllKeys(TxInvocationContext, Collection, long, TimeUnit)
but non-blocking.
-
Method Details
-
checkPendingTransactionsForKey
PendingLockPromise checkPendingTransactionsForKey(TxInvocationContext<?> ctx, Object key, long time, TimeUnit unit) Same asawaitPendingTransactionsForKey(TxInvocationContext, Object, long, TimeUnit)
but non-blocking.Multiple invocations with the same transaction returns the same
PendingLockPromise
. For cleanup purposes,awaitPendingTransactionsForKey(TxInvocationContext, Object, long, TimeUnit)
must be invoked afterwards.- Parameters:
ctx
- theTxInvocationContext
.key
- the key to check.time
- timeout.unit
-TimeUnit
oftime
.- Returns:
- a
PendingLockPromise
.
-
checkPendingTransactionsForKeys
PendingLockPromise checkPendingTransactionsForKeys(TxInvocationContext<?> ctx, Collection<Object> keys, long time, TimeUnit unit) Same asawaitPendingTransactionsForAllKeys(TxInvocationContext, Collection, long, TimeUnit)
but non-blocking.Multiple invocations with the same transaction returns the same
PendingLockPromise
. For cleanup purposes,awaitPendingTransactionsForAllKeys(TxInvocationContext, Collection, long, TimeUnit)
must be invoked afterwards.- Parameters:
ctx
- theTxInvocationContext
.keys
- the keys to check.time
- timeout.unit
-TimeUnit
oftime
.- Returns:
- a
PendingLockPromise
.
-
awaitPendingTransactionsForKey
@Deprecated(forRemoval=true) long awaitPendingTransactionsForKey(TxInvocationContext<?> ctx, Object key, long time, TimeUnit unit) throws InterruptedException Deprecated, for removal: This API element is subject to removal in a future version.Since 10.0, the blocking variants will be removedIt waits for any transaction with older topology id to complete that may have the lock forkey
acquired.- Parameters:
ctx
- theTxInvocationContext
.key
- the key to check.time
- timeout.unit
-TimeUnit
oftime
.- Returns:
- the remaining timeout.
- Throws:
InterruptedException
- if the thread is interrupted while waiting.
-
awaitPendingTransactionsForAllKeys
@Deprecated(forRemoval=true) long awaitPendingTransactionsForAllKeys(TxInvocationContext<?> ctx, Collection<Object> keys, long time, TimeUnit unit) throws InterruptedException Deprecated, for removal: This API element is subject to removal in a future version.Since 10.0, the blocking variants will be removedIt waits for any transaction with older topology id to complete that may have the lock for any key inkeys
acquired.- Parameters:
ctx
- theTxInvocationContext
.keys
- the keys to check.time
- timeout.unit
-TimeUnit
oftime
.- Returns:
- the remaining timeout.
- Throws:
InterruptedException
- if the thread is interrupted while waiting.
-