天堂任鸟飞
#1
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.1
【问题描述】参数 lease_time 默认 10s,在 3.x 及之前的版本是宕机约 10s (即参数 lease_time 设定时间)之后开始进行选举;到了 4.x 后变为 4s。
两个问题:
-
文档和实测发现都是 4s 租约过期之后进行选举,但 __all_virtual_sys_parameter_stat 中没找到是哪个参数,这个是 hard code 的吗?
-
4.x 中选举 leader 的租约时长为 4s,那么参数 lease_time 是否还生效?
【复现路径】问题出现前后相关操作
【问题现象及影响】
【附件】
叮咚叮咚
#3
lease_time 在 4.x 默认值还是10s,您说的“实测发现都是 4s 租约过期之后进行选举”是如何验证的呢?
天堂任鸟飞
#4
压测时 kill 主节点,observer.log 中最后一条日志即是宕机时间,如:
[2023-04-25 19:41:41.930970]
再到 __all_server_event_history 表里查 event = 'lease expired’的事件就可以确认。
再看你们的文档:
这里写的是 lease_time 参数,版本一路过来都是10s:
但还有这里显示是4s的,测下来也确实是4秒,否则4.1也没法做到rto<8s。
其灵
#5
lease时间可以看这段代码:
inline int64_t CALCULATE_LEASE_INTERVAL() { return 4 * MAX_TST; }// 4个消息延迟,默认是4s
1 个赞
天堂任鸟飞
#6
好的,非常感谢。
4.x 的文档介绍中 lease_time 10s 的内容是否老旧了,如果是的话建议修改下哈,2个租约时间容易混淆。