[发明专利]一种基于Raft日志复制的自适应方法在审
申请号: | 202210185531.7 | 申请日: | 2022-02-28 |
公开(公告)号: | CN114661520A | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 李伟;曾磊;邵羽;王磊 | 申请(专利权)人: | 重庆趣链数字科技有限公司;重庆市先进区块链研究院 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 北京挺立专利事务所(普通合伙) 11265 | 代理人: | 郭磊 |
地址: | 400000 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 raft 日志 复制 自适应 方法 | ||
本发明涉及区块链共识技术领域,具体公开了一种基于Raft日志复制的自适应方法。Leader发送AppendEntries的操作时,计算出当前操作的哈希值,并记录到节点的log;在记录每次log的哈希值时,按照log从低到高的顺序计算哈希对应的数字值的前缀和;该节点则利用S02的对应的log计算差距gap,取出集群正常节点范围f;获得正常节点范围f后,根据差距进行正常节点范围f分割获取分割点k、余数点left,k=gap/f,left=gap%f;获得k,left的值后,利用轮询的方式把落后的log均匀的到分布到其他非Leader节点去获得。本发明的目的在于解决传统的在Raft共识协议中,如果日志落后比较多,则需要过多消耗Leader节点的CPU和带宽性能,这可能会对集群整体性能带来影响的问题。
技术领域
本申请涉及区块链共识技术领域,具体公开了一种基于Raft日志复制的自适应方法。
背景技术
Raft是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。相比传统的Paxos算法,Raft将大量的计算问题分解成为了一些简单的相对独立的子问题。
Raft通过选举一个高贵的领导人,然后给予他全部的管理复制日志的责任来实现一致性。领导人从客户端接收日志条目,把日志条目复制到其他服务器上,并且当保证安全性的时候告诉其他的服务器应用日志条目到他们的状态机中。拥有一个领导人大大简化了对复制日志的管理。
在Raft共识协议中,领导人必须从客户端接收日志然后复制到集群中的其他节点,在某些节点宕机的然后再恢复的情况下,如果日志落后比较多,则需要过多消耗Leader节点的CPU和带宽性能,这可能会对集群整体性能带来影响,因此,发明人有鉴于此,提供了一种基于Raft日志复制的自适应方法,以便解决上述问题。
发明内容
本发明的目的在于解决传统的在Raft共识协议中,如果日志落后比较多,则需要过多消耗Leader节点的CPU和带宽性能,这可能会对集群整体性能带来影响的问题。
为了达到上述目的,本发明的基础方案提供一种基于Raft日志复制的自适应方法。
本基础方案的原理及效果在于:
包括以下步骤:
步骤S01,选举Leader,Leader发送AppendEntries的操作时,计算出当前操作的哈希值,并记录到节点的log;
步骤S02,在记录每次log的哈希值时,按照log从低到高的顺序计算哈希对应的数字值的前缀和;
步骤S03,节点出现宕机再重启时,该节点则利用S02的对应的log计算差距gap,取出集群正常节点范围f;
步骤S04,获得正常节点范围f后,根据差距进行正常节点范围f分割获取分割点k、余数点left,k=gap/f,left=gap%f;
步骤S05,获得k,left的值后,利用轮询的方式把落后的log均匀的到分布到其他非Leader节点去获得;
步骤S06,按照上述步骤在重启节点获得某一日志,并拼接日志成功后,再按照上面计算出来的Sumi来验证log数据是否完整合法,直到数据验证合法完整,然后重启加入集群继续对外提供服务。
进一步,在步骤S02中,若前缀和有溢出的情况,则可以用取模操作,即Sumi=(Sumi-1+Hashi)%P。
进一步,在步骤S03中,集群剩余正常工作节点为N,N>=3,令f=max(N-1,1)。
进一步,在步骤S04中,可将k值按照集群能力设置为一个固定值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆趣链数字科技有限公司;重庆市先进区块链研究院,未经重庆趣链数字科技有限公司;重庆市先进区块链研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210185531.7/2.html,转载请声明来源钻瓜专利网。