[ https://issues.apache.org/jira/browse/IGNITE-24694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksandr Polovtsev resolved IGNITE-24694. ------------------------------------------ Resolution: Won't Fix This approach proved to be not viable and does not fix the original problem. > 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)