[
https://issues.apache.org/jira/browse/IGNITE-24694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Polovtsev updated IGNITE-24694:
-----------------------------------------
Epic Link: IGNITE-22115
> JRaft should be able to replay the log from a non-zero position
> ---------------------------------------------------------------
>
> Key: IGNITE-24694
> URL: https://issues.apache.org/jira/browse/IGNITE-24694
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksandr Polovtsev
> Assignee: Aleksandr Polovtsev
> Priority: Major
> Labels: ignite-3
>
> When a new table processor is added to the {{ZonePartitionRaftListener}} its
> storage gets initialized with some information, like the last applied index
> and Raft group configuration. However, a node can die or be restarted before
> this information gets flushed onto a persistent storage which means that upon
> the consecutive startup, this storage will return 0 as its last applied
> index. Since on startup we use the minimum last applied index across all
> storages during Raft recovery, this value will also be 0 and JRaft will think
> that it needs to replay the log from the beginning of time, while actually
> this came from a storage for an empty table, and its applied index shouldn't
> even be taken into account. An even bigger problem is that the log might have
> been truncated and cannot be restored from the 0 index, so the node won't
> even be able to start.
> It is proposed to modify JRaft recovery procedure to replay the log from the
> smallest available index in case the index from the startup information
> provided by our storages is equal to 0.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)