You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Timonin (Jira)" <ji...@apache.org> on 2023/01/20 15:43:00 UTC

[jira] [Created] (IGNITE-18599) Incremental snapshot ID in tx thread might be skipped if previous hasn't finished yet

Maksim Timonin created IGNITE-18599:
---------------------------------------

             Summary: Incremental snapshot ID in tx thread might be skipped if previous hasn't finished yet
                 Key: IGNITE-18599
                 URL: https://issues.apache.org/jira/browse/IGNITE-18599
             Project: Ignite
          Issue Type: Bug
            Reporter: Maksim Timonin


Transactions could be included into incremental snapshot while is excluded on other nodes. Check this scenario:
 # Incremental snapshot (A) started, processed, and be prepared for finish. Coordinator sends FullMessage to clear snapshot resources (incSnpId, clusterSnpReq, etc) on all nodes.
 # Originated node (O) handles the FullMessage, clear resources for snapshot (A), and it is available to start new incremental snapshot.
 # User starts incremental snapshot (B) on this node (O), while other nodes (N) still did not receive the FullMessage.
 # Node (O) starts wrapping messages and send it (X) to node (N).
 # Node (N) skips handling received incSnpId from IncSnpAwareMessage, as it still has previous one.
 # Node (N) received the FullMessage, and clear resources for snp (A)
 # Node (N) received snapshot request for (B) by discovery.

Then:
 # Snapshot (B) didn't fail, and consider as correct.
 # Transaction (X) on node (N) might miss transactions check required for incremental snapshot. Then Node (N) might include this transaction to snapshot (B) while other nodes might exclude it from this snapshot.

There are some options to handle it:
 # IncSnpAwareMessage might check previous snapshot, and await it finished.
 # IncSnpAwareMessage might sign received ID as inconsistent, and after receiving a snapshot request - stop it.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)