THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
DistributedProcess
with special message holds new ConsistentCutMarker
(goal is to notify every node in a cluster about running incremental snapshot). ConsistentCutMarker
by discovery.ConsistentCutMarker
by transaction message (Prepare, Finish)topVersion
with received in marker. Skip if it is different.ConsistentCut
futurecommittingTx,
goal is to track COMMITTING transactions, that aren't part of IgniteTxManager#activeTx
ConsistentCutMarker
.ConsistentCutStartRecord
to WAL with the received ConsistentCutMarker
.IgniteTxManager#activeTx
and committingTxs
.DistributedProcess
is alive every node signs output transaction messages:ConsistentCutMarker
(to trigger ConsistentCut
on remote node, if not yet).ConsistentCutMarker
(to trigger...) and transaction ConsistentCutMarker
(to notify nodes which side of cut this transaction belongs to).ConsistentCutMarker
on node that commits first.committingTxs
.tx#finishFuture
with callback. Callback is called when transaction finished:tx.finalizationStatus
!= RECOVERY_FINISH). If it isn't then this cut is inconsistent. Complete ConsistentCut exceptionally.txMarker
is null or differs from local, then transaction put into before
txMarker
equals to local, then transaction put into after
before
, after
). committingTxs
and clean this collection.ConsistentCut
future, and notifies a node-initiator about finishing local procedure (with DistributedProcess
protocol).ConsistentCut
:ConsistentCut
future becomes null....