在多列存副本的情况下,learner是多个还是1个?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:所有版本
  • 【问题描述】:tiflash中,如果表设置为多列存副本,对应于raft中的learner,是多个还是1个?learner只是个状态吗?还是像follower一样是一个角色?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1、如果是同一张表开启了 tiflash ,并且 replica 是 2 ,分别分布在不同的服务器节点上,通过 pd-ctl 会看到该表存在两个 learner 的 peer。
2、learner 和 follower 可以简单理解都是 raft group 中的一个角色状态。其中,learner 和 follower 的差别是只进行异步的数据复制,不参与投票 ~

谢谢您的回复,想在请教一下,咱们这块的实现是否采用了etcd raft中的isLearner:smile:

您好,PingCAP 也是 Etcd 社区的一个活跃的贡献者,一些重大的 Features 例如 Learner 等新特性,都是由我们设计和贡献给 Etcd 的。这篇博客也有提到 learner 相关的内容,欢迎查阅: