Class LostCleanupDistributed
java.lang.Object
com.couchbase.client.core.transaction.cleanup.LostCleanupDistributed
Runs the algorithm to find 'lost' transactions, distributing the work between clients.
The user specifies that lost transactions should be found inside a certain cleanup window of X seconds.
As this algo is distributed and tries to require minimal co-operation between clients (they simply read and write a Client Record doc periodically, there are flaws including:
Two clients can read the same client record at the same time and miss each other's updates A client can read the record just before a new client removes itself
The idea is that these conflicts will sort themselves out on the next iteration, and that in the vast majority of cases each ATR will be checked in X seconds.
- Author:
- Graham Pople
-
Constructor Summary
ConstructorDescriptionLostCleanupDistributed
(Core core, CoreTransactionsConfig config, Supplier<TransactionsCleaner> cleanerSupplier) -
Method Summary
Modifier and TypeMethodDescriptionvoid
handleATRCleanup
(String bp, CollectionIdentifier atrCollection, String atrId, ActiveTransactionRecordStats stats, Duration safetyMargin, SpanWrapper pspan) Looks at an ATR, finds any expired entries, and cleans them up.
-
Constructor Details
-
LostCleanupDistributed
public LostCleanupDistributed(Core core, CoreTransactionsConfig config, Supplier<TransactionsCleaner> cleanerSupplier)
-
-
Method Details
-
addToCleanupSet
-
cleanupSet
-
shutdown
-
handleATRCleanup
public Flux<TransactionCleanupAttemptEvent> handleATRCleanup(String bp, CollectionIdentifier atrCollection, String atrId, ActiveTransactionRecordStats stats, Duration safetyMargin, SpanWrapper pspan) Looks at an ATR, finds any expired entries, and cleans them up. Called only from lost.
-