TiDB server选举问题

 多个tidb server,其中有个作为owner负责执行ddl语句,除了该节点tidb server发生故障,还有那些条件会触发tidb server owner选举发生?

worker有任期,轮换当owner

1 个赞

感谢回复!
如果有任期,就是通过参数来控制的,为什么要定期轮换呢,这样设计有啥好处呢?

tidb高级系统管理的课程里tidb那一节讲过由任意一个tidb server发过来的ddl请求由start job模块接收,会持久化到tikv里的job queue里,再由作为owner的tidb server从队列里取出来交给worker模块去执行。印象里没有具体说owner为什么要设计成轮换(也可能说了但我忘了),也没有说有参数去控制轮换周期。我觉得选举的发生不会由tidb server发生故障而触发,而是由定期选举来防止tidb server宕机导致ddl丢失的问题,因为tidb server本身无状态。只是个人理解,不一定对。

2 个赞


我觉得这个图片就可以说明了。

2 个赞

我理解的好处有
1轮流做owner分担集群压力
2避免单点问题

1 个赞

我觉得重点在这一句,owner会主动维护自己的任期,即续约。从这个地方,我理解是owner会为自己续约,续约不成功,或者owner状态异常,别的tidb server才接管,不知这样理解对不对。

谢谢,

我和你理解的差不多,但是具体实现,我觉得还是得看看这块的源码是怎么控制的

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。