一种利用软件定义网络优化的共识算法的制作方法

文档序号:12722012阅读:来源:国知局

技术特征:

1.一种利用软件定义网络优化的共识算法,包括以下步骤:

S1:客户端向服务器集群广播请求,服务器处理请求后将结果返回给客户端;

服务器收到请求后会根据角色产生不同的响应,服务器的角色包括:追随者Follower、申请者Candidate和领导者Leader,服务器处理请求并将结果存储到日志后,追随者Follower将结果发送到领导者Leader,Leader直接发送给客户端;服务器完成Candidate角色时,在选举过程才会出现,Leader宕机后进入选举过程,选举过程中服务器不响应客户端的请求;

S2:服务器间同步请求执行结果,保证一致性。

2.根据权利要求1所述的利用软件定义网络优化的共识算法,其特征在于,所述步骤S1中:

服务器集群中,若追随者Follower收到客户端client的请求,执行请求并将请求与结果的哈希值Hash存储到日志Log中,然后将结果Hash值通过创建新条目的远程程序调用发送给领导者Leader,Hash值计算公式如下:

Hashn=H(Hashn-1||operationn)

上述公式表示执行索引index为n的操作后得到的Hash值,若Hash值相同,则执行过的所有操作均一致。

3.根据权利要求1所述的利用软件定义网络优化的共识算法,其特征在于,所述步骤S1中:

若领导者Leader收到请求,执行并将请求存储到日志Log中,然后将结果返回给客户端client。

4.根据权利要求3所述的利用软件定义网络优化的共识算法,其特征在于,所述步骤S2中:

领导者Leader接收到追随者Follower的新条目的远程程序调用new entry RPC,先检查其中的索引index,若索引值小于已提交的索引值commitIndex,则直接发出修正结果的远程程序调用correct RPC,远程程序调用correct RPC中index值为远程程序调用new entry RPC的索引值;若该索引>本地索引,即领导者Leader还未收到此请求,则执行新条目的远程程序调用中的请求并返回结果给客户端;若index>=commitIndex且index<=本地index,则比较执行结果的Hash值,若一致则发出让Follower提交结果的远程程序调用commit RPC,其index即为new entry RPC中的index;当超过半数追随者Follower执行此命令且Hash值一致时将本地commitIndex更新为此命令的index值;若不一致则返回correct RPC令相应追随者Follower进行修改,此时correct RPC中index值为本地commitIndex。

5.根据权利要求4所述的利用软件定义网络优化的共识算法,其特征在于,所述步骤S2中:

追随者Follower若收到领导者Leader的commit RPC,若RPC中Hash值与本地Log中对应的commitIndex请求执行后的Hash值相同,则将本地的commitIndex变量值更新为commit RPC中的index值,若不同,发送new entry RPC给Leader,new entry RPC中index值为本地Log中最新的请求的index,Log为该index对应的命令,Hash即为其运行结果的Hash值;若本地当前周期curTerm小于commit RPC中的curTerm值,将其更新为与commit RPC中的值;若收到Leader的correct RPC,则向前回滚到correct RPC中的index的请求执行后的状态,然后依次执行correct RPC的Log中的请求。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1