如何解决raft log在服务器异常断电的情况下,有时会损坏的问题

如果通过raft协议的每个写操作都等待fsync到磁盘之后,再返回,会极大影响性能,如果不等待fsync到磁盘之后再返回,则在服务器异常断电情况下,会存在raft log文件损坏的问题,有没有比较好的解决方案,即保证性能又能从raft log文件损坏中恢复,求解答,谢谢!!

你好,4.0 最新版本已优化过,sync-log 打开对性能的影响也不大。建议一直打开。

能介绍下做了哪些优化吗?每个写操作都fsync,对性能肯定影响很大。或者有相关的资料介绍这部分吗?

5.0 开始有控制 fsync 频率的功能,之前的版本都是通过 batch 去平摊 fsync 的开销。从 4.0.7 开始将会移除 sync-log 配置。
还没有具体的资料,关于 batch 部分,有一篇介绍的文档 https://pingcap.com/blog-cn/tikv-source-code-reading-17/

1 个赞