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). ConsistentCutId
by discovery.ConsistentCutId
by transaction message (Prepare, Finish)ConsistentCutId
, every node: 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 (see below in Signing messages, 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.
txCutId
equals to local, then 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.
ConsistentCut
future becomes null....