[ https://issues.apache.org/jira/browse/IGNITE-18612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy resolved IGNITE-18612. ---------------------------------------- Resolution: Won't Fix Not relevant as network messages are delivered until the recipient gets removed from the topology > Make RAFT snapshot streaming resistant to network glitches > ---------------------------------------------------------- > > Key: IGNITE-18612 > URL: https://issues.apache.org/jira/browse/IGNITE-18612 > Project: Ignite > Issue Type: Improvement > Reporter: Roman Puchkovskiy > Assignee: Roman Puchkovskiy > Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > Network is inherently unreliable (see IGNITE-18605). RAFT snapshot streaming > might take dozens of minutes. Current implementation breaks on the first > lost/improperly handled message, so If we get a glitch in the middle of a > long snapshot installation, we'll waste a lot of resources. > The idea is to: > # Make requests idempotent (so that we can repeat a lost request). > {{SnapshotMetaRequest}} is already idempotent. {{SnapshotMvDataRequest}} and > {{SnapshotTxDataRequest}} can be provided with a sequenceNo (increased at the > receiving side for each next request, but not increased for a retry of a > previous request). As there is only one receiver, and it always works > sequentially, on the sending side we'll have to only additionally remember > the previous response and its sequenceNo to support idempotent retries that > do not cause excessive cursor advancement. > # On the receiving side, specify a sane timeout (like a few seconds) per > request and retry requests that error or timeout (using the correct > sequenceNo) > # If an error happens while processing a request on the sending side, return > an indication of an error to the receiver instead of just dropping the > message (so that the receiver gets informed about the necessity to make a > retry faster, AND the receiver can see whether it should stop retrying if the > failure is fatal). -- This message was sent by Atlassian Jira (v8.20.10#820010)