xraft icon indicating copy to clipboard operation
xraft copied to clipboard

这里在崩溃的时候,会不会导致数据不一致

Open lutaoact opened this issue 2 years ago • 1 comments

https://github.com/xnnyygn/xraft/blob/3442abcf0c54d631e10d44df577771d27138de74/xraft-core/src/main/java/in/xnnyygn/xraft/core/log/sequence/FileEntrySequence.java#L208

如果数据文件已经被截断了,但索引文件尚未被更新,就会发生不一致。 所以我认为应该先保存 offset,然后清理索引,再清理数据。

lutaoact avatar Apr 05 '22 15:04 lutaoact

有可能。不过这里移除尾部日志理论上极少发生,而且处理文件写入过程中的宕机主要靠启动时的文件检查,写入自身能做的恢复处理不多。

你可以把两句位置移动一下,或者在初始化时检查两个文件数据是否一致。如果你提交pull request的话我这边会看一下。谢谢。

xnnyygn avatar Apr 06 '22 04:04 xnnyygn