为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】:场景 + 问题概述
tikv写入完成的标志是。写入apply-log就算完成,还是写入具体的数据才算完成
【背景】:做过哪些操作
【现象】:业务和数据库现象
【问题】:当前遇到的问题
【业务影响】:
【TiDB 版本】:
【附件】:
- 相关日志
- 配置文件
- Grafana 监控(https://metricstool.pingcap.com/)
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】:场景 + 问题概述
tikv写入完成的标志是。写入apply-log就算完成,还是写入具体的数据才算完成
【背景】:做过哪些操作
【现象】:业务和数据库现象
【问题】:当前遇到的问题
【业务影响】:
【TiDB 版本】:
【附件】:
Raft log 同步到其他 peer 并多数 peer 返回给 Leader 已经写入成功以后才算写入完成,主要通过 raft 算法来保证,可以理解为 apply log 完成以后,写入数据才算完成。
1 那个leader 所在的node上,是不是需要写入raftlog的raftdb 还是直接写入kvdb?
2 数据写入raftdb所在的rockcksdb上之后就认为写入完成,这个时候是可以read的么? 还是之后同步到kvdb之后才能读到?(不考虑只读leader)
写入 raft db 就可以了;
可以读取的
那么数据读取操作, 两个rockdb是存在公用内存么? 如果不是共用读取的时候不是需要先在raftdb所在的rockdb查看一下,然后再从kvdb是在rockdb查看一下,因为不确定是不是从raftdb落盘到kvdb了,毕竟写入raftdb就算写入完成了
Raft RocksDB 参与的写入流程,但是不参与读流程。读流程是在 KV RocksDB 发生的。为了帮你理解这块的逻辑,我找到之前做的一个读写流程的流程图,可以参考一下 。TiDB Performance Map