THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
ConsistentCut splits timeline on 2 global areas - BEFORE and AFTER. It guarantees that every transaction committed BEFORE also will be committed BEFORE on every other node. It means that an Ignite node can safely recover itself to this point without any coordination with other nodes.
ConsistentCut
future equals to null
.committingTxs
that goal is to track COMMITTING+ transactions, that aren't part of IgniteTxManager#activeTx
No concurrent ConsistentCut process is running.DistributedProcess
with special message holds new ConsistentCutMarker
.ConsistentCutMarker
by discovery.ConsistentCutMarker
by transaction message (Prepare, Finish)ConsistentCut
committingTxs
, committingTx,
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
.ConsistentCut
is running 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.ConsistentCutMarker
and prepares before
, after
collections:before
sideafter
sidebefore
, after
). committingTxs
.ConsistentCut
future, and notifies a node-initiator about finishing local procedure (with DistributedProcess
protocol).ConsistentCut
:ConsistentCut
future becomes null....