[發(fā)明專利]一種paxos實例更新方法、設(shè)備及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201210592711.3 | 申請日: | 2012-12-31 |
| 公開(公告)號: | CN103916419B | 公開(公告)日: | 2017-08-04 |
| 發(fā)明(設(shè)計)人: | 林謖 | 申請(專利權(quán))人: | 北京新媒傳信科技有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 北京市隆安律師事務(wù)所11323 | 代理人: | 權(quán)鮮枝 |
| 地址: | 100089 北京市海淀區(qū)萬*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 paxos 實例 更新 方法 設(shè)備 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及分布式計算領(lǐng)域,特別涉及一種paxos實例更新方法、設(shè)備及系統(tǒng)。
背景技術(shù)
分布式計算系統(tǒng)中各節(jié)點之間的配合動作為用戶提供更加可靠的數(shù)據(jù)和可計算資源的訪問。分布式計算系統(tǒng)中每個節(jié)點執(zhí)行相同的任務(wù)并儲存相同的信息,然而分布式計算系統(tǒng)卻不可避免的也會產(chǎn)生如下錯誤:進(jìn)程慢、垮、重啟,消息延遲、丟失、重復(fù)等。因此,為保證分布式計算系統(tǒng)中每個節(jié)點執(zhí)行相同的命令,需要在每一條指令上執(zhí)行一個“一致性算法”。paxos算法就是一種應(yīng)用于分布式計算系統(tǒng)的“一致性算法”。
在paxos算法中,如果進(jìn)行一次在所有副本上的數(shù)據(jù)更新操作,首選需要一個學(xué)習(xí)(learn)過程來確定是針對哪個paxos實例,再進(jìn)行一個準(zhǔn)備(prepare)過程以獲得批準(zhǔn)(accept)的請求權(quán)利及執(zhí)行批準(zhǔn)過程所需要的序列號,最后執(zhí)行一個批準(zhǔn)過程,過程復(fù)雜,涉及場景多,因此,執(zhí)行效率低,不能用于高負(fù)載、高并發(fā)的應(yīng)用場景。
發(fā)明內(nèi)容
本發(fā)明提供一種paxos實例更新方法、設(shè)備及系統(tǒng),以解決現(xiàn)有paxos算法執(zhí)行效率低的問題。
本發(fā)明提供了一種paxos實例更新方法,所述方法包括:
提案節(jié)點執(zhí)行學(xué)習(xí)過程,獲得當(dāng)前方案下已批準(zhǔn)paxos實例的實例信息,得到需更新paxos實例的實例ID;
提案節(jié)點根據(jù)所述已批準(zhǔn)paxos實例的實例信息,判斷所述需更新paxos實例是否為當(dāng)前方案下的第一個paxos實例;
在所述需更新paxos實例為當(dāng)前方案的第一個paxos實例時,提案節(jié)點直接以所述實例ID和約定的最小序列號向所有的批準(zhǔn)節(jié)點發(fā)起批準(zhǔn)請求;
在所述需更新paxos實例不是當(dāng)前方案的第一個paxos實例時,提案節(jié)點以所述實例ID執(zhí)行準(zhǔn)備過程,確定序列號,并以所確定的序列號和所述實例ID向所有的批準(zhǔn)節(jié)點發(fā)起批準(zhǔn)請求;
在所述批準(zhǔn)請求被多數(shù)派所述批準(zhǔn)節(jié)點接受后,確認(rèn)所述需更新paxos實例被批準(zhǔn),更新所述需更新paxos實例。
在上述方案中,所述提案節(jié)點根據(jù)所述已批準(zhǔn)paxos實例的實例信息,判斷所述需更新paxos實例是否為當(dāng)前方案下的第一個paxos實例,包括:提案節(jié)點判斷所述已批準(zhǔn)paxos實例的實例信息是否為空或者實例ID是否為零,如果是,則所述需更新paxos實例為當(dāng)前方案下的第一個paxos實例,如果不是,則所述需更新paxos實例不是當(dāng)前方案下的第一個paxos實例;其中,所述已批準(zhǔn)paxos實例的實例信息包括當(dāng)前方案下已被批準(zhǔn)paxos實例的實例ID、值和序列號。
在上述方案中,所述以所述實例ID和約定的最小序列號向所有的批準(zhǔn)節(jié)點發(fā)起批準(zhǔn)請求之前,所述方法還包括:所述提案節(jié)點采用約定的序列號計算方法計算得到所述最小序列號。
在上述方案中,所述提案節(jié)點以所述實例ID執(zhí)行準(zhǔn)備過程,確定序列號,并以所確定的序列號和所述實例ID向所有的提案節(jié)點發(fā)起批準(zhǔn)請求,包括:所述提案節(jié)點計算序列號,并以所述計算得到的序列號和所述實例ID向所有的批準(zhǔn)節(jié)點發(fā)出準(zhǔn)備請求;在接受所述準(zhǔn)備請求的批準(zhǔn)節(jié)點數(shù)目滿足多數(shù)派要求時,提案節(jié)點以所述計算得到的序列號和所述實例ID發(fā)起批準(zhǔn)請求。
本發(fā)明還提供了一種用于paxos實例更新的設(shè)備,所述設(shè)備包括:學(xué)習(xí)單元、判斷單元、批準(zhǔn)單元和準(zhǔn)備單元;其中,
學(xué)習(xí)單元,用于執(zhí)行學(xué)習(xí)過程,獲得當(dāng)前方案下已批準(zhǔn)paxos實例的實例信息,得到需更新paxos實例的實例ID;
判斷單元,用于根據(jù)所述學(xué)習(xí)單元獲得的所述已批準(zhǔn)paxos實例的實例信息,判斷所述需更新paxos實例是否為當(dāng)前方案下的第一個paxos實例,并在判斷需更新paxos實例為當(dāng)前方案的第一個paxos實例時直接通知所述批準(zhǔn)單元,在判斷需更新paxos實例不為當(dāng)前方案的第一個paxos實例時通知所述準(zhǔn)備單元;
準(zhǔn)備單元,用于在接收到所述判斷單元的通知后,以所述學(xué)習(xí)單元得到的實例ID執(zhí)行準(zhǔn)備過程,確定序列號,并將所確定的序列號通知給所述批準(zhǔn)單元;
批準(zhǔn)單元,用于在接收到所述判斷單元的通知后,直接以所述實例ID和約定的最小序列號向所有的批準(zhǔn)節(jié)點發(fā)起批準(zhǔn)請求;以及,用于以所述準(zhǔn)備單元確定的序列號和所述學(xué)習(xí)單元得到的實例ID向所有的批準(zhǔn)節(jié)點發(fā)起批準(zhǔn)請求;以及,用于在所述批準(zhǔn)請求被多數(shù)派所述批準(zhǔn)節(jié)點接受后,確認(rèn)所述需更新paxos實例被批準(zhǔn),更新所述需更新paxos實例。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京新媒傳信科技有限公司,未經(jīng)北京新媒傳信科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210592711.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





