[发明专利]一种强同步角色故障的识别与恢复方法有效
申请号: | 202110188539.4 | 申请日: | 2021-02-19 |
公开(公告)号: | CN112838965B | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 朱林浩;徐伟涛;赵文慧 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | H04L41/0654 | 分类号: | H04L41/0654;H04L43/10;H04L67/10 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜鹏 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 同步 角色 故障 识别 恢复 方法 | ||
1.一种强同步角色故障的识别与恢复方法,其特征在于,具有以下步骤:
S1、强同步角色故障的识别;
在progress结构体中添加整型计时变量SynchronizerElapsed,表示距离领导者上一次收到来自强同步角色的心跳回复消息的tick次数,在领导者的每次tick中,所有强同步角色的计时变量自增1,领导者每次收到强同步角色的心跳回复时,则将相应的计时变量清零;
若领导者在一定时间内未收到强同步角色的心跳回复,致使计时变量达到强同步超时时间,则将该强同步角色的id录入raft结构体中用于记录故障强同步角色的映射表inactiveSynchronizers,至此成功识别强同步角色故障;
S2、告知用户强同步角色故障信息;
识别到强同步角色故障后,领导者所在的节点通过内部SQL查询,获取发送失败的心跳对应range所属的表名,在数据库命令行告知用户故障信息,包括发送心跳失败的目标节点,以及该节点上将要取消同步配置的表名;
S3、强同步角色故障的处理;
在领导者决策行为的replicateQueue方法中触发对故障强同步角色的配置变更,强制取消其强同步属性;
若领导者重新收到故障的强同步角色的心跳回复消息,则将对应的计时变量清零并将其id从inactiveSynchronizers中移除;
如果该强同步配置已经被取消,会自动复用设置强同步角色的逻辑,通过配置变更恢复其强同步属性;
S4、避免重复识别强同步角色故障;
识别到强同步副本故障后,在取消强同步配置的过程中将inactiveSynchronizers从raft同步到用于描述range状态的基于protobuf的结构体rangeDescriptor,新分裂出的range初始化时获得旧range的inactiveSynchronizers,并同步到为它创建的raft中。
2.根据权利要求1所述的一种强同步角色故障的识别与恢复方法,其特征在于,在步骤S2中,在强同步角色恢复工作后,若发送成功的心跳对应的range在此之前发生了强同步角色故障,则查询上述映射表获取该range所属的表名,在命令行告知用户恢复工作的目标节点,以及该节点上将要恢复强同步配置的表名;
对于同一个table,每次识别到强同步角色故障或故障的强同步角色恢复时,只告知用户一次。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110188539.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种MySQL数据库增量同步实现方法
- 下一篇:自动上料绞线绕线装置