为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】
4.0.9
【问题描述】
默认情况下,写入tikv的数据的落盘方式是同步还是异步,是否可以设置落盘方式
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】
4.0.9
【问题描述】
默认情况下,写入tikv的数据的落盘方式是同步还是异步,是否可以设置落盘方式
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
默认情况下,写入tikv的数据的落盘方式是异步的
首先,了解一下 tikv 内数据两次落盘,详情可参考 官方问文档 Performance-map:
对数据落盘方式的问题分为两个组件回答:
compaction-readahead-size
、 bytes-per-sync
、 wal-bytes-per-sync
等 rocksdb 的参数配置上推测,应该是异步的,官网并没有给出 rockdb kv 数据落盘的修改方式。 个人觉得,也没有必要修改,因为一致性问题已经在 Raftstore 部分使用同步的方式、借用 raft 协议的多数派特性解决了,出于性能考虑真正的 kv 数据也没有必要采用同步的方式。
对于是否可以设置落盘方式问题:
raftstore.sync-log
设置为 false 可以提升一部分写性能,也会增加在机器故障时数据丢失的风险;总结来说,tikv 的 raft 数据是同步的,落盘方式可修改;tikv 的 kv 数据的落盘是异步的,落盘方式不可修改;
楼上正解
对tikv的实现不熟悉,官网上也没找到相关说明,所以来这提问,谢谢你的详细回答,解答了我的疑问。