课程名称: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将让它基于整个镜像复制,从而解决整体运行效率问题。
二、Data replicas in TiDB
1.Scale-out(add new node)
- 首先将A节点的Region1 的leader角色transfer到B节点,并将Region1迁移到B节点
- 转变后在E节点上添加Region1副本
- 最后删除A节点的Region1副本
- 出现故障时,例如E节点故障,如果半小时没有恢复(默认时长为半小时),会重新在ABCD四个节点中寻找合适节点创建Region1副本,当后续E节点再次加入时会自动判断副本状态后续如何对他的Region进行操作。