【TiDB 4.0 PCTA 学习笔记】- 3.9.1 Data Replicas(数据复制) @2班+李响

课程名称:3.9.1 Data Replicas(数据复制)

学习时长:

20分钟

课程收获:

理解 Raft 协议的基本概念,了解 TiDB 中副本操作流程。

课程内容:

一、Raft protocol principle
1.Raft protocol

  • Raft是一致性协议
  • Raft比较重要的功能:
    • Leader的选举
    • 成员变更(例如,添加删除副本、转移Leader等操作)
    • 日志复制
  • TiKV使用Raft来数据复制
    当一条数据进入时,首先将整个操作变成一条Raft日志,以Raft log形式从leader分发到Follower节点,Follower节点对Raft log进行跟进处理,当确认整个集群大多数节点完成了这个log应用之后,给客服端返回操作完成,保证了数据一致性。当一个节点持续很长一段时间落后其他节点处理log时,Leader将让它基于整个镜像复制,从而解决整体运行效率问题。
    image

二、Data replicas in TiDB
1.Scale-out(add new node)

  • 首先将A节点的Region1 的leader角色transfer到B节点,并将Region1迁移到B节点
    image
  • 转变后在E节点上添加Region1副本
  • 最后删除A节点的Region1副本
  • 出现故障时,例如E节点故障,如果半小时没有恢复(默认时长为半小时),会重新在ABCD四个节点中寻找合适节点创建Region1副本,当后续E节点再次加入时会自动判断副本状态后续如何对他的Region进行操作。