亚洲无精品一区二区在线观看-少妇无码一区二区三区免费-AAAAAA级裸体美女毛片-99桃花在线无码国产毛片视频-亚洲一区二区三区18-精品久久婷婷免费视频-在线观看免费欧美精品-久久国产丝袜高清视频-欧美熟妇极品在线看片

    當(dāng)前位置 >>  首頁(yè) >> 科學(xué)普及 >> 科普文章

科普文章

(A)淺析大數(shù)據(jù)時(shí)代的存儲(chǔ)可靠性增強(qiáng)技術(shù)

稿件來(lái)源: 發(fā)布時(shí)間:2017-07-28

    隨著半導(dǎo)體和互聯(lián)網(wǎng)等新興技術(shù)的出現(xiàn)和發(fā)展,人們已經(jīng)進(jìn)入了大數(shù)據(jù)(Big Data)時(shí)代,數(shù)據(jù)存儲(chǔ)量正在以驚人的速度增加。如果存儲(chǔ)設(shè)備的某個(gè)存儲(chǔ)單元發(fā)生故障,其中的存儲(chǔ)數(shù)據(jù)就會(huì)丟失,從而造成損失。這一問(wèn)題在大數(shù)據(jù)時(shí)代顯得尤為突出。因此,目前業(yè)內(nèi)主流存儲(chǔ)公司(例如微軟、谷歌、百度等)都采用了可靠性增強(qiáng)技術(shù),對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行保護(hù)。

  可靠性增強(qiáng)技術(shù)的基本方法是對(duì)原始數(shù)據(jù)增加一定冗余(Redundancy)[1],使得用戶(hù)在讀取數(shù)據(jù)時(shí),如果有存儲(chǔ)單元出現(xiàn)故障,可以盡量利用冗余數(shù)據(jù)恢復(fù)出原始數(shù)據(jù)。本文淺析了當(dāng)前業(yè)界存儲(chǔ)系統(tǒng)中使用的兩種可靠性增強(qiáng)技術(shù)——數(shù)據(jù)復(fù)制(Replication)和刪除編碼(Erasure Coding)對(duì)存儲(chǔ)數(shù)據(jù)保護(hù)的原理。

  數(shù)據(jù)復(fù)制是一種最簡(jiǎn)單也是最常用的增加冗余的方法。圖1給出了這種方法的示意圖。

  

  1 采用數(shù)據(jù)復(fù)制的存儲(chǔ)過(guò)程示意圖

  在圖1中,每個(gè)方框代表一個(gè)存儲(chǔ)單元。藍(lán)色存儲(chǔ)單元中的數(shù)據(jù)為原始數(shù)據(jù),粉色存儲(chǔ)單元中的數(shù)據(jù)為原始數(shù)據(jù)的復(fù)制。每個(gè)數(shù)據(jù)復(fù)制成為三份相同的數(shù)據(jù)進(jìn)行存儲(chǔ)。用戶(hù)在數(shù)據(jù)讀取時(shí),依次對(duì)三份數(shù)據(jù)進(jìn)行讀取。若三份數(shù)據(jù)均讀取失敗則原始數(shù)據(jù)讀取失敗;否則,將讀取的任意一份數(shù)據(jù)作為相應(yīng)的原始數(shù)據(jù)。可以看出,只要三份相同數(shù)據(jù)中有一份可以讀出,就可以得到原始數(shù)據(jù)。

  但是,采用上述復(fù)制方法,存儲(chǔ)利用率只有1/3。也就是說(shuō),僅有1/3的空間用來(lái)存儲(chǔ)有效數(shù)據(jù),另外2/3的空間存儲(chǔ)的是冗余數(shù)據(jù)。因此,存儲(chǔ)利用率相對(duì)較低。為了克服這一問(wèn)題,一些新穎的增加冗余的方法應(yīng)運(yùn)而生。其中刪除編碼是一種常用的方法。

  刪除編碼的基本思想是將需要存儲(chǔ)的數(shù)據(jù)分成每K個(gè)一組,通過(guò)特定的編碼方式,增加個(gè)冗余數(shù)據(jù),構(gòu)成個(gè)數(shù)據(jù)進(jìn)行存儲(chǔ)。選擇的編碼方式具有如下特征:若在N個(gè)數(shù)據(jù)中可以讀取任意不少于K個(gè)數(shù)據(jù),就能恢復(fù)全部K個(gè)原始數(shù)據(jù)。刪除編碼的數(shù)據(jù)編碼及其讀取方法均基于多項(xiàng)式(Polynomial)求值進(jìn)行的。下面以, 為例說(shuō)明其基本原理。

  

  2 采用刪除編碼的存儲(chǔ)過(guò)程示意圖

  如圖2所示,假定需要存儲(chǔ)的兩個(gè)數(shù)據(jù)為字符AB。下面求取增加的一個(gè)冗余數(shù)據(jù)。在ASCII[2]中查得ABASCII值分別為6566。假定它們?cè)谄矫嬷苯亲鴺?biāo)系中對(duì)應(yīng)兩個(gè)點(diǎn),坐標(biāo)分別為A(1,65), B(2,66),如圖3所示。

  

  3 刪除編碼求取冗余數(shù)據(jù)示意圖

  由平面幾何知識(shí)可知,這兩個(gè)點(diǎn)唯一確定一條直線。利用點(diǎn)A和點(diǎn)B的坐標(biāo)可以求得該直線的函數(shù)方程為。增加冗余數(shù)據(jù)的方法是計(jì)算該函數(shù)在其它某個(gè)給定點(diǎn)的函數(shù)值。假定冗余數(shù)據(jù)對(duì)應(yīng),經(jīng)計(jì)算可知其對(duì)應(yīng)函數(shù)值為67,查ASCII表可知對(duì)應(yīng)的字符為C。數(shù)據(jù)存儲(chǔ)過(guò)程見(jiàn)圖2,其中藍(lán)色存儲(chǔ)單元中的數(shù)據(jù)為原始數(shù)據(jù),粉色存儲(chǔ)單元中的數(shù)據(jù)為冗余數(shù)據(jù)。需要指出的是,對(duì)于用戶(hù)來(lái)說(shuō),原始數(shù)據(jù)和冗余數(shù)據(jù)對(duì)應(yīng)點(diǎn)的縱坐標(biāo)是需要讀取或者計(jì)算得到的,但是橫坐標(biāo)是預(yù)先知道的。下面分為三種情況討論數(shù)據(jù)讀取過(guò)程。

  情況一:假定在數(shù)據(jù)讀取中前兩個(gè)存儲(chǔ)單元都沒(méi)有發(fā)生故障。根據(jù)數(shù)據(jù)的排列方式,依次取這兩個(gè)存儲(chǔ)單元中的字符,就得到了原始數(shù)據(jù)。需要說(shuō)明的是,由于第三個(gè)存儲(chǔ)單元中存儲(chǔ)的是冗余數(shù)據(jù)(C),因此無(wú)論其是否故障都不影響原始數(shù)據(jù)(AB)的讀取。

  情況二:假定在數(shù)據(jù)讀取中第一個(gè)存儲(chǔ)單元出現(xiàn)故障,后兩個(gè)單元中的數(shù)據(jù)可以讀取。此時(shí)可以得到點(diǎn)B和點(diǎn)C的坐標(biāo)(2,66)(3,67)。利用這兩個(gè)點(diǎn)的坐標(biāo),可以求得通過(guò)BC的直線方程。由于第一個(gè)存儲(chǔ)單元中的數(shù)據(jù)的對(duì)應(yīng)點(diǎn)也在這條直線上,且橫坐標(biāo)。因此,計(jì)算該點(diǎn)的函數(shù)值并查ASCII表可知對(duì)應(yīng)的字符為A。此時(shí),兩個(gè)原始數(shù)據(jù)都可以成功讀取。

  情況三:假定在數(shù)據(jù)讀取中第二個(gè)存儲(chǔ)單元出現(xiàn)故障。與情況二完全類(lèi)似,這時(shí)也可以成功讀取兩個(gè)原始數(shù)據(jù)。

  綜合上面的分析可知,只要可以讀取任意不少于2個(gè)數(shù)據(jù),就可以保證恢復(fù)出全部2個(gè)原始數(shù)據(jù)字符AB

  一般地,若刪除編碼的參數(shù)為NK,則原始數(shù)據(jù)對(duì)應(yīng)平面的K個(gè)不同點(diǎn)。根據(jù)代數(shù)知識(shí)可知,這K個(gè)點(diǎn)可以確定一個(gè)次數(shù)不超過(guò)K的多項(xiàng)式函數(shù)。求取冗余數(shù)據(jù)的方法可歸結(jié)為計(jì)算該函數(shù)在其它個(gè)給定點(diǎn)的函數(shù)值。在數(shù)據(jù)讀取時(shí),若原始數(shù)據(jù)有些不能讀取,但能夠讀取的數(shù)據(jù)數(shù)目不少于K,就可以通過(guò)求解線性方程組得到(即求出系數(shù)),進(jìn)而得到原始數(shù)據(jù)對(duì)應(yīng)的K個(gè)點(diǎn)的函數(shù)值,恢復(fù)出原始數(shù)據(jù)。

  需要指出的是,在實(shí)際存儲(chǔ)中,上述多項(xiàng)式不是定義在實(shí)數(shù)集上,而是定義在一種特殊的代數(shù)系統(tǒng)——有限域(Finite Field)上。由于篇幅所限,對(duì)于有限域的基本知識(shí)和相關(guān)運(yùn)算就不加以介紹了,感興趣的讀者請(qǐng)參考文獻(xiàn)[3]

  不難看出,上述刪除編碼的存儲(chǔ)利用率為K/N。通過(guò)恰當(dāng)選擇參數(shù)NK(例如,NK典型的取值為1410),可以使得其存儲(chǔ)利用率高于復(fù)制方法。但是,從數(shù)據(jù)讀取來(lái)看,刪除編碼比復(fù)制方法要復(fù)雜。此外,刪除編碼對(duì)數(shù)據(jù)的保護(hù)能力比復(fù)制方法可能要差一些。

  在大數(shù)據(jù)時(shí)代,可靠性增強(qiáng)技術(shù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中發(fā)揮著非常重要的作用。隨著存儲(chǔ)系統(tǒng)的不斷發(fā)展,新穎的可靠性增強(qiáng)技術(shù)也在不斷涌現(xiàn)。希望讀者通過(guò)本文的介紹對(duì)這一技術(shù)有初步了解,并能產(chǎn)生興趣,從而進(jìn)一步探索,發(fā)現(xiàn)更多有意義的結(jié)論。

  參考文獻(xiàn):

  [1] 李揮,侯韓旭. 分布式存儲(chǔ)編碼與系統(tǒng)[M]. 北京:科學(xué)出版社,2016.

  [2] 譚浩強(qiáng). C程序設(shè)計(jì)(第四版)[M]. 北京:清華大學(xué)出版社,2010.

  [3] 馮克勤,廖群英. 有限域及其應(yīng)用[M]. 大連:大連理工大學(xué)出版社. 2011.

附件: