THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
lastFinishedCutId
holds previous ConsistentCutId
, or null.DistributedProcess
with special message holds new ConsistentCutId
(goal is to notify every node in a cluster about running incremental snapshot). topVer
on which ConsistentCut started.ConsistentCutId
by discovery.ConsistentCutId
by communication (transaction message (messages - Prepare, Finish).ConsistentCutId
, every node: topVer
with mapped topology version of received transaction message. Skip ConsistentCut initialization if the received version is higher.ConsistentCut
future.committingTx
(goal is to track COMMITTING transactions, that aren't part of IgniteTxManager#activeTx
)ConsistentCutId
.IgniteTxManager#activeTx.
Set listeners on those tx#finishFuture.
ConsistentCutStartRecord
to WAL with the received ConsistentCutId
.committingTxs.
Set listeners on those tx#finishFuture.
committingTxs
to null.
DistributedProcess
is running every node is signing output transaction messages:ConsistentCutId
(to trigger ConsistentCut
on remote node, if not yet).txCutId
on the node that commits first (if it's not null then transaction starts committing After
Consistent Cut):committingTxs
, and marks the transaction with extracted from the message txCutId.
check If transaction state is UNKNOWN or status is RECOVERY_FINISH, then complete ConsistentCut with exception.
topVer
, then put it into after
.txCutId
equals to local, then put transaction put into after
, otherwise it's put into before
.ConsistentCutFinishRecord
into WAL with the collections ( before
, after
). ConsistentCut
future.ConsistentCut,
on every node:lastFinishedCutId
with the current id.
ConsistentCut
future becomes null....
Code Block | ||||
---|---|---|---|---|
| ||||
class ConsistentCutAwareMessage { /** Original transaction message. */ Message msg; /** Consistent Cut ID. */ UUID cutId; /** Cluster topology version on which Consistent Cut started. */ long topVer; } |
Also some messages require to be signed with additional ConsistentCutId
to check it them on primary/backup node.
...
Code Block | ||||
---|---|---|---|---|
| ||||
class ConsistentCutAwareTransactionFinishMessage extends ConsistentCutAwareMessage {
/** Consistent Cut ID after which transaction committed. */
@Nullable UUID txCutId;
} |
...