[發(fā)明專利]一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)方法及裝置在審
| 申請(qǐng)?zhí)枺?/td> | 202310189295.0 | 申請(qǐng)日: | 2023-02-23 |
| 公開(公告)號(hào): | CN116339623A | 公開(公告)日: | 2023-06-27 |
| 發(fā)明(設(shè)計(jì))人: | 劉亞閣 | 申請(qǐng)(專利權(quán))人: | 北京奇藝世紀(jì)科技有限公司 |
| 主分類號(hào): | G06F3/06 | 分類號(hào): | G06F3/06 |
| 代理公司: | 北京潤澤恒知識(shí)產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 呂俊秀 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 一致性 算法 數(shù)據(jù) 存儲(chǔ) 方法 裝置 | ||
本發(fā)明實(shí)施例提供了一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)方法及裝置,通過獲取服務(wù)器集群中每個(gè)存儲(chǔ)服務(wù)器的存儲(chǔ)容量,根據(jù)存儲(chǔ)服務(wù)器的存儲(chǔ)容量,確定每個(gè)存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量,其中,存儲(chǔ)服務(wù)器的存儲(chǔ)容量與虛擬節(jié)點(diǎn)的數(shù)量為正比例關(guān)系,使得若存儲(chǔ)服務(wù)器對(duì)應(yīng)的存儲(chǔ)容量越大,那么存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量越多,在按照虛擬節(jié)點(diǎn)的第一哈希值的大小順序,構(gòu)建哈希環(huán)后,存儲(chǔ)服務(wù)器的存儲(chǔ)容量越大,對(duì)應(yīng)的虛擬節(jié)點(diǎn)在哈希環(huán)的分布越多,使得在存儲(chǔ)大量待存儲(chǔ)數(shù)據(jù)時(shí),待存儲(chǔ)數(shù)據(jù)落在存儲(chǔ)容量較大的存儲(chǔ)服務(wù)器的概率更大,使得大量的待存儲(chǔ)數(shù)據(jù)可以根據(jù)存儲(chǔ)服務(wù)器的存儲(chǔ)容量的大小相對(duì)均衡的存儲(chǔ)在不同的存儲(chǔ)服務(wù)器。
技術(shù)領(lǐng)域
本發(fā)明涉及服務(wù)器存儲(chǔ)領(lǐng)域,特別是涉及一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù)
隨著互聯(lián)網(wǎng)的高速發(fā)展,產(chǎn)生的數(shù)據(jù)越來越多,海量的數(shù)據(jù)通常通過服務(wù)器集群的方式進(jìn)行存儲(chǔ),以應(yīng)對(duì)日益增加的存儲(chǔ)需求。
目前,數(shù)據(jù)采用傳統(tǒng)的哈希方案尋找對(duì)應(yīng)的服務(wù)器進(jìn)行數(shù)據(jù)存儲(chǔ),服務(wù)器或服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)分布在哈希環(huán)上,通過計(jì)算待存儲(chǔ)數(shù)據(jù)映射在哈希環(huán)的位置,確定待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的服務(wù)器。
然而,由于服務(wù)器的存儲(chǔ)容量不同,若服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的分布或數(shù)量不合理,將造成數(shù)據(jù)傾斜問題,數(shù)據(jù)存儲(chǔ)壓力集中在某一個(gè)服務(wù)器,若這個(gè)服務(wù)器出現(xiàn)故障,那么需要遷移的數(shù)據(jù)量巨大,同時(shí)也造成其他服務(wù)器存儲(chǔ)資源的浪費(fèi)。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
第一方面,本申請(qǐng)實(shí)施例公開了一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)方法,所述方法包括:
獲取服務(wù)器集群中每個(gè)存儲(chǔ)服務(wù)器的存儲(chǔ)容量;
根據(jù)所述存儲(chǔ)服務(wù)器的存儲(chǔ)容量,確定每個(gè)存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量,所述存儲(chǔ)服務(wù)器的存儲(chǔ)容量與所述虛擬節(jié)點(diǎn)的數(shù)量為正比例關(guān)系,每個(gè)所述虛擬節(jié)點(diǎn)具有對(duì)應(yīng)的第一哈希值;
按照每個(gè)所述存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量以及所述虛擬節(jié)點(diǎn)的第一哈希值的大小順序,構(gòu)建哈希環(huán);
在獲取到待存儲(chǔ)數(shù)據(jù)的情況下,根據(jù)由所述待存儲(chǔ)數(shù)據(jù)計(jì)算得到的第二哈希值,在所述哈希環(huán)上確定與所述第二哈希值對(duì)應(yīng)的目標(biāo)虛擬節(jié)點(diǎn);
將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述目標(biāo)虛擬節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)存儲(chǔ)服務(wù)器中。
第二方面,本申請(qǐng)實(shí)施例公開了一種基于一致性哈希算法的數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:
獲取模塊,用于獲取服務(wù)器集群中每個(gè)存儲(chǔ)服務(wù)器的存儲(chǔ)容量;
數(shù)量確定模塊,用于根據(jù)所述存儲(chǔ)服務(wù)器的存儲(chǔ)容量,確定每個(gè)存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量,所述存儲(chǔ)服務(wù)器的存儲(chǔ)容量與所述虛擬節(jié)點(diǎn)的數(shù)量為正比例關(guān)系,每個(gè)所述虛擬節(jié)點(diǎn)具有對(duì)應(yīng)的第一哈希值;
哈希環(huán)構(gòu)建模塊,用于按照每個(gè)所述存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的數(shù)量以及所述虛擬節(jié)點(diǎn)的第一哈希值的大小順序,構(gòu)建哈希環(huán);
第一映射模塊,用于在獲取到待存儲(chǔ)數(shù)據(jù)的情況下,根據(jù)由所述待存儲(chǔ)數(shù)據(jù)計(jì)算得到的第二哈希值,在所述哈希環(huán)上確定與所述第二哈希值對(duì)應(yīng)的目標(biāo)虛擬節(jié)點(diǎn);
第二映射模塊,用于將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述目標(biāo)虛擬節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)存儲(chǔ)服務(wù)器中。
第三方面,本申請(qǐng)實(shí)施例還公開了一種電子設(shè)備,包括:處理器;
用于存儲(chǔ)所述處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為執(zhí)行所述指令,以實(shí)現(xiàn)如第一方面所述的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇藝世紀(jì)科技有限公司,未經(jīng)北京奇藝世紀(jì)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310189295.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計(jì)算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計(jì)算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時(shí)間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





