Region、Raft log、Raft Group之间的关系

每个Region存在多个副本,每个副本都有一份raft log,每个region的多个副本就对应一个Raft group组,每个Raft Group 里面有一个leader和多个followers。。。。 请大佬指教,我这个理解是否正确。

你理解的很对

region leader是对应着raft log 的leader吧,region leader在tikv中进行数据多副本同步,实际使用的是raft log的leader来同步的吗?还是说region 的leader 不对应raft log的leader?

在TiDB的架构中,所有的数据都被切分成一定的key range,这些被切分的小块被称为Region,这些Region会被分布到多个TiKV实例上。Raft Group是由多个Region组成的,每个Region都会有自己的Raft Group。

Raft Log是Raft Group中的一部分,它用来记录每一次的数据更改。当数据发生变化时,这些变化会首先被写入Raft Log,然后通过Raft协议同步到整个Raft Group中的所有Region,保证数据的一致性。

所以,Region、Raft log和Raft Group之间的关系是:Region是数据的基本切分单位,Raft Group是由多个Region组成的数据复制和同步单位,Raft Log则是记录数据变化,保证数据一致性的工具。

具体的看下这个文档 TiDB 数据库的存储 | PingCAP 文档中心

2 个赞

感谢大佬

raft log没有leader 、follower之分吧

没有的哈。对于Region来说是分为learder和follwer的

1 个赞

理解的没问题

raft log+data 是一个整体,每个副本都有一份。

没毛病

没毛病

学得不错,多看看文档

raft log+data 是一个整体,每个副本都有一份。

绕进去了