最新精品国偷自产在线美女足_国产午夜精华无码网站_天天爱天天做狠狠久久做_国产片免费福利片永久_欧美国产成人精品一区二区三区

    當前位置 >>  首頁 >> 科學普及 >> 科普文章

科普文章

(A)淺析大數據時代的存儲可靠性增強技術

稿件來源: 發(fā)布時間:2017-07-28

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

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

  數據復制是一種最簡單也是最常用的增加冗余的方法。圖1給出了這種方法的示意圖。

  

  1 采用數據復制的存儲過程示意圖

  在圖1中,每個方框代表一個存儲單元。藍色存儲單元中的數據為原始數據,粉色存儲單元中的數據為原始數據的復制。每個數據復制成為三份相同的數據進行存儲。用戶在數據讀取時,依次對三份數據進行讀取。若三份數據均讀取失敗則原始數據讀取失?。环駝t,將讀取的任意一份數據作為相應的原始數據??梢钥闯?,只要三份相同數據中有一份可以讀出,就可以得到原始數據。

  但是,采用上述復制方法,存儲利用率只有1/3。也就是說,僅有1/3的空間用來存儲有效數據,另外2/3的空間存儲的是冗余數據。因此,存儲利用率相對較低。為了克服這一問題,一些新穎的增加冗余的方法應運而生。其中刪除編碼是一種常用的方法。

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

  

  2 采用刪除編碼的存儲過程示意圖

  如圖2所示,假定需要存儲的兩個數據為字符AB。下面求取增加的一個冗余數據。在ASCII[2]中查得ABASCII值分別為6566。假定它們在平面直角坐標系中對應兩個點,坐標分別為A(1,65), B(2,66),如圖3所示。

  

  3 刪除編碼求取冗余數據示意圖

  由平面幾何知識可知,這兩個點唯一確定一條直線。利用點A和點B的坐標可以求得該直線的函數方程為。增加冗余數據的方法是計算該函數在其它某個給定點的函數值。假定冗余數據對應,經計算可知其對應函數值為67,查ASCII表可知對應的字符為C。數據存儲過程見圖2,其中藍色存儲單元中的數據為原始數據,粉色存儲單元中的數據為冗余數據。需要指出的是,對于用戶來說,原始數據和冗余數據對應點的縱坐標是需要讀取或者計算得到的,但是橫坐標是預先知道的。下面分為三種情況討論數據讀取過程。

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

  情況二:假定在數據讀取中第一個存儲單元出現故障,后兩個單元中的數據可以讀取。此時可以得到點B和點C的坐標(2,66)(3,67)。利用這兩個點的坐標,可以求得通過BC的直線方程。由于第一個存儲單元中的數據的對應點也在這條直線上,且橫坐標。因此,計算該點的函數值并查ASCII表可知對應的字符為A。此時,兩個原始數據都可以成功讀取。

  情況三:假定在數據讀取中第二個存儲單元出現故障。與情況二完全類似,這時也可以成功讀取兩個原始數據。

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

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

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

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

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

  參考文獻:

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

  [2] 譚浩強. C程序設計(第四版)[M]. 北京:清華大學出版社,2010.

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

附件: