[發(fā)明專利]分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)、方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201610074240.5 | 申請(qǐng)日: | 2016-02-02 |
| 公開(公告)號(hào): | CN105516367B | 公開(公告)日: | 2018-02-13 |
| 發(fā)明(設(shè)計(jì))人: | 宋惠卿;孫曉 | 申請(qǐng)(專利權(quán))人: | 北京百度網(wǎng)訊科技有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08 |
| 代理公司: | 北京英賽嘉華知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司11204 | 代理人: | 王達(dá)佐,馬曉亞 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分布式 數(shù)據(jù) 存儲(chǔ)系統(tǒng) 方法 裝置 | ||
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)、方法和裝置。
背景技術(shù)
目前,業(yè)內(nèi)通常采用分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ),分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)既具有集群系統(tǒng)的可擴(kuò)/縮容的特性,又可以進(jìn)行分布式操作。因此,在數(shù)據(jù)存儲(chǔ)量發(fā)生變化時(shí),分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠通過增加/移除集群中的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)實(shí)現(xiàn)對(duì)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的擴(kuò)/縮容。
在現(xiàn)有的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,通常可以采用一致性哈希算法對(duì)集群進(jìn)行分片,而后對(duì)鍵值對(duì)數(shù)據(jù)(key-value)等進(jìn)行存儲(chǔ)。但是此種存儲(chǔ)系統(tǒng)在存儲(chǔ)數(shù)據(jù)量發(fā)生變化而需要增加/移除數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),由于一致性哈希算法的限制,使得相鄰存儲(chǔ)節(jié)點(diǎn)的鍵值(key)映射發(fā)生的變化,容易導(dǎo)致數(shù)據(jù)的丟失,集群擴(kuò)展性差。而更有甚者,有些分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)不存在中心管理機(jī)制,系統(tǒng)的結(jié)構(gòu)復(fù)雜。
發(fā)明內(nèi)容
本申請(qǐng)的目的在于提出一種改進(jìn)的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)、方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請(qǐng)?zhí)峁┝艘环N分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),所述系統(tǒng)包括:數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),用于存儲(chǔ)代理節(jié)點(diǎn)發(fā)送的待存儲(chǔ)數(shù)據(jù),各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)包括多個(gè)用于映射不同鍵值信息的哈希槽,所述待存儲(chǔ)數(shù)據(jù)包括鍵值信息和數(shù)據(jù)信息;中心管理節(jié)點(diǎn),用于存儲(chǔ)記錄信息,所述記錄信息包括各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)所構(gòu)成的集群的網(wǎng)絡(luò)拓?fù)潢P(guān)系、哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的分布情況以及各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量;所述代理節(jié)點(diǎn),用于接收客戶端發(fā)送的待存儲(chǔ)數(shù)據(jù),根據(jù)所述中心管理節(jié)點(diǎn)的記錄信息確定與所述待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的哈希槽和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
在一些實(shí)施例中,所述代理節(jié)點(diǎn)還用于:根據(jù)所述記錄信息中的各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量,判斷各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量是否在預(yù)設(shè)的閾值范圍內(nèi);若是,則保持?jǐn)?shù)據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)目不變;若否,則增加/移除數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),重新分配各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的哈希槽,并更新所述記錄信息。
在一些實(shí)施例中,所述代理節(jié)點(diǎn)進(jìn)一步用于:判斷是否存在數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量大于所述閾值范圍的最大值;若是,則增加至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn);判斷是否存在數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量小于所述閾值范圍的最小值;若是,則移除至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
在一些實(shí)施例中,當(dāng)增加至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則將各個(gè)原數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的部分哈希槽轉(zhuǎn)移到新增加的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中,使得哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中平均分配;當(dāng)移除至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則將移除的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的哈希槽轉(zhuǎn)移到剩余的數(shù)據(jù)節(jié)點(diǎn)中,使得哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中平均分配。
在一些實(shí)施例中,所述系統(tǒng)用于云計(jì)算環(huán)境;以及所述系統(tǒng)還包括:資源管理節(jié)點(diǎn),用于為所述系統(tǒng)分配云計(jì)算資源;所述代理節(jié)點(diǎn)進(jìn)一步用于從所述資源管理節(jié)點(diǎn)獲取云計(jì)算資源。
第二方面,本申請(qǐng)?zhí)峁┝艘环N分布式數(shù)據(jù)存儲(chǔ)方法,所述方法包括:接收客戶端發(fā)送的待存儲(chǔ)數(shù)據(jù),其中,所述待存儲(chǔ)數(shù)據(jù)包括鍵值信息和該哈希槽所在的第一數(shù)據(jù)信息;根據(jù)中心管理節(jié)點(diǎn)存儲(chǔ)的記錄信息,確定與所述鍵值信息對(duì)應(yīng)的哈希槽和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),其中,所述記錄信息包括各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)所構(gòu)成的集群的網(wǎng)絡(luò)拓?fù)潢P(guān)系、哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的分布情況以及各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量,各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)包括多個(gè)用于映射鍵值信息的哈希槽;根據(jù)所述鍵值信息,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到所述第一數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
在一些實(shí)施例中,所述方法還包括:根據(jù)所述記錄信息中的各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量,判斷各所述數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的負(fù)載量是否在預(yù)設(shè)的閾值范圍內(nèi);若是,則保持?jǐn)?shù)據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)目不變;若否,則增加/移除數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),重新分配各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的哈希槽,并更新所述記錄信息。
在一些實(shí)施例中,所述增加/移除數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),包括:當(dāng)存在負(fù)載量大于所述閾值范圍的最大值的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則增加至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn);當(dāng)存在負(fù)載量小于所述閾值范圍的最小值的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則移除至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
在一些實(shí)施例中,所述重新分配各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的哈希槽,并更新所述記錄信息,包括:當(dāng)增加至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則將原數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的部分哈希槽轉(zhuǎn)移到新增加的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中,使得哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中平均分配,并更新所述記錄信息;當(dāng)移除至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),則將移除的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的哈希槽轉(zhuǎn)移到剩余的數(shù)據(jù)節(jié)點(diǎn)中,使得哈希槽在各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中平均分配,并更新所述記錄信息。
在一些實(shí)施例中,所述方法用于云計(jì)算環(huán)境;以及所述方法還包括:從資源管理節(jié)點(diǎn)獲取云計(jì)算資源。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京百度網(wǎng)訊科技有限公司,未經(jīng)北京百度網(wǎng)訊科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610074240.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 數(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)裝置
- 用于處理到遠(yuǎn)程存儲(chǔ)位置的故障恢復(fù)的方法、系統(tǒng)以及程序
- 包括向外擴(kuò)展型存儲(chǔ)系統(tǒng)的存儲(chǔ)系統(tǒng)群及其管理方法
- 一種移動(dòng)存儲(chǔ)系統(tǒng)及其存儲(chǔ)方法
- 存儲(chǔ)系統(tǒng)的數(shù)據(jù)備份與恢復(fù)系統(tǒng)、方法、設(shè)備及存儲(chǔ)介質(zhì)
- 在線遷移異構(gòu)系統(tǒng)數(shù)據(jù)的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)
- 建立存儲(chǔ)系統(tǒng)伙伴關(guān)系的方法及裝置
- 數(shù)據(jù)處理系統(tǒng)及其操作方法
- 一種容災(zāi)平臺(tái)及一種容災(zāi)方法
- 在基于云的存儲(chǔ)系統(tǒng)中服務(wù)I/O操作
- 一種數(shù)據(jù)修復(fù)方法及裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





