【TiDB 4.0 PCTA 学习笔记】- 3.9.1 Data Replicas @2班+马志林

课程名称:【TiDB 4.0 PCTA 学习笔记】- 3.9.1 Data Replicas (数据复制)

学习时长:15m

课程收获:

了解Raft 协议,了解 TiDB 数据复制流程

课程内容:

一、Raft协议原理
分布式数据库 一般通过数据副本复制来保证数据不丢失。
raft 协议是一个一致性协议,具有leader选举、成员变更(添加副本、删除副本、转移leader等操作)、日志复制等功能。
在整个Raft体系中,由一个强leader负责接收客户端的请求命令,并将命令作为日志条目复制到其他服务器。在确认安全的时候,将日志命令提交执行。当leader故障时,会选举产生一个新的leader。


不同于paxos,Raft协议中 leader选举和所有的决定由leader来处理,这两部分是相互独立的。

数据的读写由leader对外提供,对leader的操作形成raft log,分发到follow节点。
follow节点根据日志跟进处理。当确认大多数节点已经完成raft log的应用后,向客户端反馈操作完成。

如果有一个节点长时间落后特别多,leader直接发送Snapshot的方式,基于整个镜像进行恢复,而不再是用raft log一条一条的跟进,提升整体运行效率。

二、TiDB的副本工作流程


初始化4个节点


增加节点E,需要调度一些region过去,将整个集群的存储均匀化。
节点A 的region1 进行leader选举,迁移到节点B


在节点E 创建region1


删除节点A 的 region1 ,希望数据始终保持三region 。

当发生节点缺失时,如宕机、网络中断等情况。
如果节点E 会在默认30分钟无法正常加入集群,
leader 会将从现有的节点中寻找一个合适的节点,重建节点E上的region副本。

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!