[ https://issues.apache.org/jira/browse/IGNITE-24694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936117#comment-17936117 ]
Aleksandr Polovtsev edited comment on IGNITE-24694 at 3/17/25 8:45 AM: ----------------------------------------------------------------------- This approach proved to be nonviable: if the log was truncated, it is also possible that log entries with the corresponding Raft Group configuration were also truncated and we cannot simply replay the log form the beginning, because we also need the configuration, actual for the first available log entry. We currently do not store this information anywhere. was (Author: apolovtcev): 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)