[發明專利]一種針對Raft共識算法中預選舉流程的優化方法在審
| 申請號: | 202210058252.4 | 申請日: | 2022-01-19 |
| 公開(公告)號: | CN114490125A | 公開(公告)日: | 2022-05-13 |
| 發明(設計)人: | 康俊 | 申請(專利權)人: | 山東浪潮科學研究院有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 陳婷婷 |
| 地址: | 250100 山東省濟*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 針對 raft 共識 算法 預選 流程 優化 方法 | ||
1.一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,在預選舉過程中,發起預選舉的節點計算得出一個隨機值,將該隨機值放在預選舉消息中,使其跟隨預選舉消息一起廣播到其他節點;
在預選舉過程中,若接收到另外一個發起預選舉節點的預選舉消息,則增加比較節點隨機值邏輯,防止出現多個預選舉節點時導致選舉超時現象。
2.根據權利要求1所述的一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,當所述預選舉節點接收到另一個預選舉節點發來的預選舉消息時,將自身記錄的最后一條日志的索引值以及對應的任期值與該預選舉消息中的對應值進行比較,若小于該預選舉消息中對應的任期值,或者等于對應的任期值但小于等于消息中對應的索引值,則檢查自身記錄的最后一條日志的索引值以及對應的任期值與該預選舉消息中的對應值是否相等:
如果不相等,則發送同意投票的響應消息;如果相等,則進一步比較自身記錄的隨機值與消息中攜帶的隨機值,以此判斷是否發送同意投票的響應消息。
3.根據權利要求2所述的一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,所述比較自身記錄的隨機值與消息中攜帶的隨機值,若小于消息中攜帶的隨機值,則發送同意投票的響應消息;否則繼續等待投票消息。
4.根據權利要求2或3所述的一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,所述發送同意投票的響應消息,預選舉狀態節點切換成Follower節點,并向另一個預選舉狀態節點發送同意投票的響應消息。
5.根據權利要求1所述的一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,該方法實現的具體步驟如下:
S1、Follower節點檢查自身選舉計時器是否超時;
S2、若選舉計時器未超時,則轉到步驟S1;否則將自身狀態切換為預選舉狀態,即PreCandidate狀態;
S3、獲取并記錄一個隨機值,將該隨機值添加到預選舉消息中,廣播該預選舉消息;
S4、若接收到來自其他Follower節點的預選舉響應消息,即MsgPreVoteResp,則將PreCandidate節點記錄的任期值與MsgPreVoteResp中攜帶的任期值進行比較:
若小于MsgPreVoteResp中攜帶的任期值,則為拒絕票,當前PreCandidate節點切換成Follower節點;
若大于MsgPreVoteResp中攜帶的任期值,則轉到步驟S5;
S5、PreCandidate節點自身記錄的投票數加1;
檢查票數是否超過Raft組中節點數量的一半以上:
若超過,則切換為Candidate節點,開始進行正式選舉過程;
若未超過,則等待投票消息;
S6、若接收到PreCandidate節點X發來的預選舉消息,則將自身記錄的任期值與該預選舉消息中記錄的任期值進行比較:
若大于預選舉消息中記錄的任期值,則向PreCandidate節點X發送拒絕投票的響應消息;否則轉到步驟S7;
S7、將自身記錄的最后一條日志索引值以及對應的任期值與該預選舉消息中的對應值進行比較:
若大于該預選舉消息中對應的任期值,或者等于對應的任期值但大于消息中對應的索引值,則向PreCandidate節點X發送拒絕投票的響應消息;否則轉到步驟S8;
S8、檢查自身記錄的最后一條日志索引值以及對應的任期值與該預選舉消息中的對應值是否相等:
如果不相等,則當前PreCandidate節點切換成Follower節點,并向PreCandidate節點X發送同意投票的響應消息;否則轉到步驟S9;
S9、比較自身記錄的隨機值與消息中攜帶的隨機值,若小于消息中攜帶的隨機值,則當前PreCandidate節點切換成Follower節點,并向PreCandidate節點X發送同意投票的響應消息;否則繼續等待投票消息。
6.根據權利要求5所述的一種針對Raft共識算法中預選舉流程的優化方法,其特征在于,在所述步驟S2中,其自身記錄的任期值不做任何改變。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東浪潮科學研究院有限公司,未經山東浪潮科學研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210058252.4/1.html,轉載請聲明來源鉆瓜專利網。





