>[0085]附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0086]描述于本申請(qǐng)實(shí)施例中所涉及到的模塊可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的模塊也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括接收模塊、確定模塊和存儲(chǔ)模塊。其中,這些模塊的名稱(chēng)在某種情況下并不構(gòu)成對(duì)該模塊本身的限定,例如,接收模塊還可以被描述為“接收客戶(hù)端發(fā)送的待存儲(chǔ)數(shù)據(jù)的模塊”。
[0087]作為另一方面,本申請(qǐng)還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),該非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是上述實(shí)施例中所述裝置中所包含的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。上述非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,當(dāng)所述一個(gè)或者多個(gè)程序被一個(gè)設(shè)備執(zhí)行時(shí),使得所述設(shè)備:接收模塊,配置用于接收客戶(hù)端發(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è)用于映射鍵值信息的哈希槽;存儲(chǔ)模塊,配置用于根據(jù)所述鍵值信息,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到所述第一數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
[0088]以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開(kāi)的(但不限于)具有類(lèi)似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。
【主權(quán)項(xiàng)】
1.一種分布式數(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),用于接收客戶(hù)端發(fā)送的待存儲(chǔ)數(shù)據(jù),根據(jù)所述中心管理節(jié)點(diǎn)的記錄信息確定與所述待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的哈希槽和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。2.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述代理節(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)的哈希槽,并更新所述記錄信息O3.根據(jù)權(quán)利要求2所述的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述代理節(jié)點(diǎn)進(jìn)一步用于: 判斷是否存在負(fù)載量大于所述閾值范圍的最大值的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn); 若是,則增加至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn); 判斷是否存在負(fù)載量小于所述閾值范圍的最小值的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn); 若是,則移除至少一個(gè)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。4.根據(jù)權(quán)利要求2或3所述的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,當(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)中平均分配。5.根據(jù)權(quán)利要求4所述的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述系統(tǒng)用于云計(jì)算環(huán)境;以及 所述系統(tǒng)還包括:資源管理節(jié)點(diǎn),用于為所述系統(tǒng)分配云計(jì)算資源; 所述代理節(jié)點(diǎn)進(jìn)一步用于從所述資源管理節(jié)點(diǎn)獲取云計(jì)算資源。6.—種基于權(quán)利要求1-5任意一項(xiàng)所述的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)實(shí)現(xiàn)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法包括: 接收客戶(hù)端發(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)。7.根據(jù)權(quán)利要求6所述的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法還包括: 根據(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)的哈希槽,并更新所述記錄信息O8.根據(jù)權(quán)利要求6或7所述的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述增加/移除數(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)。9.根據(jù)權(quán)利要求7所述的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述重新分配各數(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)中平均分配,并更新所述記錄信息。10.根據(jù)權(quán)利要求9所述的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法用于云計(jì)算環(huán)境;以及 所述方法還包括:從資源管理節(jié)點(diǎn)獲取云計(jì)算資源。11.一種分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述裝置包括: 接收模塊,配置用于接收客戶(hù)端發(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è)用于映射鍵值信息的哈希槽; 存儲(chǔ)模塊,配置用于根據(jù)所述鍵值信息,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到所述第一數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。12.根據(jù)權(quán)利要求11所述的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述裝置還包括: 判斷模塊,配置用于根據(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)的哈希槽,并更新所述記錄信息O13.根據(jù)權(quán)利要求11或12所述的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述判斷模塊進(jì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)。14.根據(jù)權(quán)利要求12所述的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述判斷模塊進(jì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)中平均分配,并更新所述記錄信息。15.根據(jù)權(quán)利要求14所述的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述裝置用于云計(jì)算環(huán)境;以及 所述裝置還包括:獲取模塊,配置用于從資源管理節(jié)點(diǎn)獲取云計(jì)算資源。
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)、方法及裝置。所述系統(tǒng)的一【具體實(shí)施方式】包括:數(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),用于接收客戶(hù)端發(fā)送的待存儲(chǔ)數(shù)據(jù),根據(jù)所述中心管理節(jié)點(diǎn)的記錄信息確定與所述待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的哈希槽和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。該系統(tǒng)的實(shí)施方式結(jié)構(gòu)簡(jiǎn)單、擴(kuò)展性強(qiáng)。
【IPC分類(lèi)】H04L29/08
【公開(kāi)號(hào)】CN105516367
【申請(qǐng)?zhí)枴緾N201610074240
【發(fā)明人】宋惠卿, 孫曉
【申請(qǐng)人】北京百度網(wǎng)訊科技有限公司
【公開(kāi)日】2016年4月20日
【申請(qǐng)日】2016年2月2日