tidb pd api接口内容请教

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.2
【复现路径】 http://${pd}:${port}/pd/api/v1/stores获取到的是所有store的详细信息,这里面有个learner_count的key,请教下,这个字段的含义是什么? 是否可以根据是否有这个字段来决定是否有新的tikv实例正在恢复中
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

不能,因为tiflash的副本都是leaner。你得先判断这个store是tikv。

通过store输出信息确认IP地址,然后观察要恢复的tikv地址的leader_count和region_count是否有在上升,就可以判断了把。

可以根据leader的数量来判断。

Leader/Follower/Learner

它们分别对应 Peer 的三种角色。其中

  • Leader 负责响应客户端的读写请求;
  • Follower 被动地从 Leader 同步数据,当 Leader 失效时会进行选举产生新的 Leader;
  • Learner 是一种特殊的角色,它只参与同步 raft log 而不参与投票,在目前的实现中只短暂存在于添加副本的中间步骤。

不能仅靠他判断否有新的tikv实例正在恢复, learner_count 大于 0,这可能意味着有新的节点正在以 Learner 模式加入集群,可以作为一个参考值。

如果仅仅是tikv的情况下,就没问题了吧

如果是新增了kv节点,大致可以使用这个判断
数量均衡了,就同步完了

讲解的很详细,谢谢了

再请教你个问题,如果我某个tikv实例挂了,这时候肯定会触发raft切主,我记得从grafaner上看到有preparing的同步信息,想知道这个状态代表什么含义呢? 从pd的接口能感知到store的这个状态么

:yum:说白了,learner是指的tiflash,和tikv没关系。大部分情况下可以不关注。

这个是pdctl的,api应该能感知到吧。
https://docs.pingcap.com/zh/tidb/stable/pd-control#scheduler-show--add--remove--pause--resume--config--describe

这些应该就是
image

learner_count 字段具体指的是当前 Store 上作为 Learner 角色存在的 Region 副本的数量。如果这个值大于零,意味着存在某些 Region 正在进行数据同步或者正处于添加新副本的过程中

这个接口检查过了,一值是5个任务

了解下,楼主这是要做tikv的实例监控么?

哦哦,上面那个只是策略定义,应该是这个

image

1 个赞

是的,想感知到有tikv store是否有变更

兄弟,你太强了,要的就是这个接口的数据,感谢感谢

1 个赞

:handshake: :handshake: :handshake: