路在何chu
(Ti D Ber Ass Gn Qs R)
1
课程名称:课程版本(101)+ 课程名称
看了101课程,tikv章节,有些地方没有搞懂,自己接触TIDB不久,望各位大神指导如图下面两张图片
说一下自己理解
wal就是主leader刷写rocksdb raft先到磁盘,类似于mysql的redo,sst文件类似于脏数据刷盘,但是课程中说主leader的rocksdb raft还要apply成rocksdb kv,这个没有太懂,主leader的rocksdb raft传到follower节点apply成sst文件就行了,为什么还要在自己节点apply 成rocksdb kv,是不是rocksdb kv就是sst文件,请教一下各位大佬
随缘天空
(Ti D Ber Ivw R7o Pj)
2
首先你要知道,tikv是不往磁盘写数据的,数据入盘操作是通过RocksDB实现的,RocksDB 被用于存储数据和元数据。
而Raft是tidb实现数据一致的分布式一致性协议,用于确保 TiKV 集群中的数据一致性和可靠性。
而RocksDB KV 存储引擎是基于 RocksDB 构建的,用于存储 TiKV 的键值数据。
SST 文件是 RocksDB 存储数据的方式之一。持久化的数据都在该文件中,数据迁移备份可以使用sst文件进行操作
Jolyne
3
raftdb这个只是写的是日志持久化,然后才是apply这些raftlog到rockdb中持久化
路在何chu
(Ti D Ber Ass Gn Qs R)
4
那sst文件就是持久化的啊,那memrable也是刷写sst文件,这个为啥搞两次持久化
路在何chu
(Ti D Ber Ass Gn Qs R)
5
RocksDB那个我知道,我就是想问问sst文件是memtable刷写的,还是rocksdb raft apply成rocksdb kv的,如果只是memtable刷写的,那么rocksdb kv也是持久化数据,那么这个数据成两份了,除非rocksdb kv就是sst文件
随缘天空
(Ti D Ber Ivw R7o Pj)
8
路在何chu
(Ti D Ber Ass Gn Qs R)
9
嗯,rocksdb raft日志apply成rocksdb kv的过程,就是日志应用生成memtable,也就是脏页,然后再刷盘,形成sst文件,这个课程没有介绍太清楚
system
(system)
关闭
10
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。