,便可實(shí)現(xiàn)現(xiàn)有技術(shù)方案中,針對一份數(shù)據(jù),存儲N份副本數(shù)據(jù)所能實(shí)現(xiàn)的高可用性,節(jié)省了存儲空間,降低了存儲成本,同時還提升了存儲的數(shù)據(jù)量。
[0031]圖2示出了根據(jù)本發(fā)明另一個實(shí)施例的副本數(shù)據(jù)的存儲方法的流程示意圖。如圖2所示,該方法應(yīng)用于包括多個數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲系統(tǒng),包括以下步驟:
[0032]步驟S200,統(tǒng)計(jì)多個副本數(shù)據(jù)的業(yè)務(wù)訪問量,將業(yè)務(wù)訪問量小于預(yù)設(shè)閾值的副本數(shù)據(jù)作為待劃分的副本數(shù)據(jù)。
[0033]在本發(fā)明實(shí)施例中,讀數(shù)據(jù)、寫數(shù)據(jù)都被視為對副本數(shù)據(jù)的一次業(yè)務(wù)訪問,針對不同數(shù)據(jù),對數(shù)據(jù)的副本數(shù)據(jù)的訪問情況也不同,有的副本數(shù)據(jù)的業(yè)務(wù)訪問量大,有的數(shù)據(jù)的業(yè)務(wù)訪問量小,通過統(tǒng)計(jì)多個副本數(shù)據(jù)的業(yè)務(wù)訪問量情況,來確定是否需要按照后續(xù)方法對副本數(shù)據(jù)進(jìn)行處理。
[0034]在本步驟,預(yù)先設(shè)置了副本數(shù)據(jù)的訪問量的閾值,將副本數(shù)據(jù)的業(yè)務(wù)訪問量與該預(yù)設(shè)閾值進(jìn)行比較,副本數(shù)據(jù)的業(yè)務(wù)訪問量大于該預(yù)設(shè)閾值的,則確定為副本數(shù)據(jù)的訪問量很大,副本數(shù)據(jù)很重要性,應(yīng)該確保一份副本數(shù)據(jù)丟失時,可以即刻切換到其他副本數(shù)據(jù),避免對分布式數(shù)據(jù)存儲系統(tǒng)的業(yè)務(wù)服務(wù)造成影響;副本數(shù)據(jù)的業(yè)務(wù)訪問量小于該預(yù)設(shè)閾值的,則確定為副本數(shù)據(jù)的訪問量較小,副本數(shù)據(jù)的重要性較低,將業(yè)務(wù)訪問量小于預(yù)設(shè)閾值的副本數(shù)據(jù)作為待劃分的副本數(shù)據(jù),其中,預(yù)設(shè)閾值根據(jù)實(shí)際應(yīng)用的需要進(jìn)行設(shè)置。
[0035]步驟S201,將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,η為自然數(shù)。
[0036]在本發(fā)明實(shí)施例中,可以隨機(jī)的將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,S卩,每個數(shù)據(jù)分片的數(shù)據(jù)量也是隨機(jī)分配的;還可以根據(jù)副本數(shù)據(jù)的數(shù)據(jù)量將一份副本數(shù)據(jù)等量劃分為η個數(shù)據(jù)分片,也就是說,η個數(shù)據(jù)分片的數(shù)據(jù)量都相等。
[0037]步驟S202,依據(jù)按位取模算法,利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片,!11為自然數(shù),進(jìn)而得到n+m個待存儲的數(shù)據(jù)分片。
[0038]舉例說明,可以將一份副本數(shù)據(jù)劃分為6個數(shù)據(jù)分片,分別編號為1、2、3、4、5、6,依據(jù)按位取模算法,利用6個數(shù)據(jù)分片計(jì)算得到3個校驗(yàn)數(shù)據(jù)分片,分別編號為7、8、9,得到9個待存儲的數(shù)據(jù)分片。
[0039]具體地,可以利用數(shù)據(jù)分片1、4計(jì)算得到7校驗(yàn)數(shù)據(jù)分片,利用數(shù)據(jù)分片2、5計(jì)算得至IJ8校驗(yàn)數(shù)據(jù)分片,利用數(shù)據(jù)分片3、6計(jì)算得到9校驗(yàn)數(shù)據(jù)分片。
[0040]步驟S203,對n+m個待存儲的數(shù)據(jù)分片進(jìn)行數(shù)據(jù)恢復(fù)相關(guān)性分析,得到多個數(shù)據(jù)分片群組;其中,對于每一數(shù)據(jù)分片群組,根據(jù)其中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中剩余部分?jǐn)?shù)據(jù)分片。
[0041]數(shù)據(jù)恢復(fù)相關(guān)性指當(dāng)一部分?jǐn)?shù)據(jù)分片丟失后,根據(jù)另外幾部分?jǐn)?shù)據(jù)分片可以恢復(fù)得到丟失的這一部分?jǐn)?shù)據(jù)分片。
[0042]數(shù)據(jù)恢復(fù)相關(guān)性分析指分析待存儲的數(shù)據(jù)分片中,哪些數(shù)據(jù)分片具有數(shù)據(jù)恢復(fù)相關(guān)性,將分析后具有數(shù)據(jù)恢復(fù)相關(guān)性的數(shù)據(jù)分片確定為一個數(shù)據(jù)分片群組。
[0043]對步驟S202中得到的9個待存儲的數(shù)據(jù)分片進(jìn)行數(shù)據(jù)恢復(fù)相關(guān)性分析,分析得到,數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7是一個數(shù)據(jù)分片群組,數(shù)據(jù)分片2、5和校驗(yàn)數(shù)據(jù)分片8是一個數(shù)據(jù)分片群組,數(shù)據(jù)分片3、6和校驗(yàn)數(shù)據(jù)分片9是一個數(shù)據(jù)分片群組。
[0044]對于每一數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片,指當(dāng)數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7這個數(shù)據(jù)分片群組中的數(shù)據(jù)分片I丟失后,可以根據(jù)數(shù)據(jù)分片4和校驗(yàn)數(shù)據(jù)分片7恢復(fù)得到數(shù)據(jù)分片I。
[0045]步驟S204,將每一數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0046]在根據(jù)步驟S203得到多個數(shù)據(jù)分片群組后,將這多個數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片分別存儲于分布式數(shù)據(jù)存儲系統(tǒng)的不同的數(shù)據(jù)節(jié)點(diǎn)中,這里將數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中主要是為了避免若將一個數(shù)據(jù)分片群組都存儲到一個數(shù)據(jù)節(jié)點(diǎn)中,當(dāng)該數(shù)據(jù)節(jié)點(diǎn)宕機(jī)時,該數(shù)據(jù)節(jié)點(diǎn)中的數(shù)據(jù)將無法使用,而該數(shù)據(jù)分片群組由于都存儲到一個數(shù)據(jù)節(jié)點(diǎn)中,也就導(dǎo)致數(shù)據(jù)無法再恢復(fù)。
[0047]這里,以步驟S203得到3個數(shù)據(jù)分片群組為例,將這3個數(shù)據(jù)分片群組存儲到3個數(shù)據(jù)節(jié)點(diǎn)中,分別編號為數(shù)據(jù)節(jié)點(diǎn)1、2、3,在步驟S203中說明了:數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7是一個數(shù)據(jù)分片群組,數(shù)據(jù)分片2、5和校驗(yàn)數(shù)據(jù)分片8是一個數(shù)據(jù)分片群組,數(shù)據(jù)分片3、6和校驗(yàn)數(shù)據(jù)分片9是一個數(shù)據(jù)分片群組,因此,在存儲時,可以將數(shù)據(jù)分片1、2、3存儲到數(shù)據(jù)節(jié)點(diǎn)I中,數(shù)據(jù)分片4、5、6存儲到數(shù)據(jù)節(jié)點(diǎn)2中,數(shù)據(jù)分片7、8、9存儲到數(shù)據(jù)節(jié)點(diǎn)3中,從而將同一個數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片分別存儲到不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0048]根據(jù)本發(fā)明上述實(shí)施例提供的方法,統(tǒng)計(jì)多個副本數(shù)據(jù)的業(yè)務(wù)訪問量,將業(yè)務(wù)訪問量小于預(yù)設(shè)閾值的副本數(shù)據(jù)作為待劃分的副本數(shù)據(jù),避免將業(yè)務(wù)訪問量很大的副本數(shù)據(jù)確定為待劃分副本數(shù)據(jù)而對分布式數(shù)據(jù)存儲系統(tǒng)的業(yè)務(wù)服務(wù)造成影響,將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,依據(jù)按位取模算法,利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片,進(jìn)而得到n+m個待存儲的數(shù)據(jù)分片,對n+m個待存儲的數(shù)據(jù)分片進(jìn)行數(shù)據(jù)恢復(fù)相關(guān)性分析,得到多個數(shù)據(jù)分片群組;其中,對于每一數(shù)據(jù)分片群組,根據(jù)其中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中剩余部分?jǐn)?shù)據(jù)分片,將每一數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中,從而在任一數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)分片丟失時,可以根據(jù)其他數(shù)據(jù)節(jié)點(diǎn)中的數(shù)據(jù)分片群組內(nèi)的剩余數(shù)據(jù)分片將該數(shù)據(jù)分片恢復(fù),而且僅需要存儲n+m個待存儲的數(shù)據(jù)分片,即存儲一份副本數(shù)據(jù)和m個校驗(yàn)數(shù)據(jù)分片,便可實(shí)現(xiàn)現(xiàn)有技術(shù)方案中,針對一份數(shù)據(jù),存儲N份副本數(shù)據(jù)所能實(shí)現(xiàn)的高可用性,節(jié)省了存儲空間,降低了存儲成本,同時還提升了存儲的數(shù)據(jù)量。
[0049]圖3示出了根據(jù)本發(fā)明一個實(shí)施例的副本數(shù)據(jù)的存儲裝置的功能框圖。該裝置應(yīng)用于包括多個數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲系統(tǒng),如圖3所示,其包括:劃分模塊300、計(jì)算模塊310和存儲模塊320。
[0050]劃分模塊300,適于將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,η為自然數(shù)。
[0051]計(jì)算模塊310,適于利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片,m為自然數(shù),進(jìn)而得到n+m個待存儲的數(shù)據(jù)分片,其中,n+m個待存儲的數(shù)據(jù)分片中至少包含一個數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片。
[0052]存儲模塊320,適于將n+m個待存儲的數(shù)據(jù)分片分別存儲于多個數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0053]根據(jù)本發(fā)明上述實(shí)施例提供的裝置,將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片,進(jìn)而得到n+m個待存儲的數(shù)據(jù)分片,其中,n+m個待存儲的數(shù)據(jù)分片中至少包含一個數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片,將n+m個待存儲的數(shù)據(jù)分片分別存儲于多個數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中,從而僅需要存儲n+m個待存儲的數(shù)據(jù)分片,即存儲一份副本數(shù)據(jù)和m個校驗(yàn)數(shù)據(jù)分片,便可實(shí)現(xiàn)現(xiàn)有技術(shù)方案中,針對一份數(shù)據(jù),存儲N份副本數(shù)據(jù)所能實(shí)現(xiàn)的高可用性,節(jié)省了存儲空間,降低了存儲成本,同時還提升了存儲的數(shù)據(jù)量。
[0054]圖4示出了根據(jù)本發(fā)明一個實(shí)施例的副本數(shù)據(jù)的存儲裝置的功能框圖。該裝置應(yīng)用于包括多個數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲系統(tǒng),如圖4所示,其包括:劃分模塊400、計(jì)算模塊410和存儲模塊420。
[0055]劃分模塊400,適于將一份副本數(shù)據(jù)劃分為η個數(shù)據(jù)分片,η為自然數(shù)。
[0056]計(jì)算模塊410,適于利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片,m為自然數(shù),進(jìn)而得到n+m個待存儲的數(shù)據(jù)分片,其中,n+m個待存儲的數(shù)據(jù)分片中至少包含一個數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片。
[0057]存儲模塊420,適于將n+m個待存儲的數(shù)據(jù)分片分別存儲于多個數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0058]可選地,該裝置還包括:分析模塊430,適于對n+m個待存儲的數(shù)據(jù)分片進(jìn)行數(shù)據(jù)恢復(fù)相關(guān)性分析,得到多個數(shù)據(jù)分片群組;其中,對于每一數(shù)據(jù)分片群組,根據(jù)其中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中剩余部分?jǐn)?shù)據(jù)分片。
[0059]存儲模塊420進(jìn)一步適于:將每一數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0000]可選地,計(jì)算模塊410進(jìn)一步適于:依據(jù)按位取模算法,利用η個數(shù)據(jù)分片計(jì)算得到m個校驗(yàn)數(shù)據(jù)分片。
[0061 ]可選地,