国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法與流程

      文檔序號(hào):12463853閱讀:170來源:國知局

      本發(fā)明涉及分布式存儲(chǔ)領(lǐng)域,尤其涉及一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法。



      背景技術(shù):

      在分布式存儲(chǔ)系統(tǒng)中,一個(gè)數(shù)據(jù)文件被分發(fā)到許多通過網(wǎng)絡(luò)連接的存儲(chǔ)節(jié)點(diǎn)中存儲(chǔ)。如果某些存儲(chǔ)節(jié)點(diǎn)從網(wǎng)絡(luò)中暫時(shí)斷開,或永久斷開,該文件的內(nèi)容可以從其他連接良好的節(jié)點(diǎn)中修復(fù)出來。保證數(shù)據(jù)存儲(chǔ)可靠的一個(gè)簡(jiǎn)單方法是將數(shù)據(jù)復(fù)制成三個(gè)副本文件,然后分別存儲(chǔ)在三個(gè)不同的節(jié)點(diǎn),這種方法需要采用大型的云存儲(chǔ)系統(tǒng),它允許三個(gè)存儲(chǔ)節(jié)點(diǎn)中出現(xiàn)單一節(jié)點(diǎn)的故障并能成功將其修復(fù),如谷歌文件系統(tǒng)。但由于備份數(shù)據(jù)的容量是有用數(shù)據(jù)容量的兩倍,所以采用這種方法來修復(fù)節(jié)點(diǎn)時(shí),存儲(chǔ)效率很低且只能修復(fù)一個(gè)故障節(jié)點(diǎn)。

      Facebook存儲(chǔ)系統(tǒng)的基礎(chǔ)架構(gòu),是由數(shù)據(jù)率為10/14的高速率里德-索羅門(RS)碼進(jìn)行維護(hù)的,即每四個(gè)奇偶校驗(yàn)碼元被附加到每十個(gè)信息碼元上。RS碼不僅是一種高速率編碼方法,同時(shí)也具有高效率的解碼算法。但盡管如此,F(xiàn)acebook的集群并不是所有的數(shù)據(jù)都用RS碼來維護(hù),因?yàn)樵赗S碼的傳統(tǒng)解碼算法中,沒有將網(wǎng)絡(luò)帶寬放在考慮范圍之內(nèi)。假設(shè)編碼后的碼元存儲(chǔ)在不同的節(jié)點(diǎn)上,如果其中一個(gè)磁盤發(fā)生故障,則RS碼需要下載其他存儲(chǔ)節(jié)點(diǎn)上的10個(gè)碼元來修復(fù)這一個(gè)節(jié)點(diǎn)故障,導(dǎo)致用于修復(fù)單個(gè)節(jié)點(diǎn)的數(shù)據(jù)量就是待修復(fù)節(jié)點(diǎn)數(shù)據(jù)量的10倍,從而加大了節(jié)點(diǎn)存儲(chǔ)容量和數(shù)據(jù)傳輸帶寬的負(fù)擔(dān)。而在大規(guī)模分布式存儲(chǔ)系統(tǒng)中,節(jié)點(diǎn)故障幾乎每天都在發(fā)生,如果所有的數(shù)據(jù)都由RS碼編碼解碼,那么在進(jìn)行故障節(jié)點(diǎn)修復(fù)時(shí)所需要的節(jié)點(diǎn)存儲(chǔ)容量和網(wǎng)絡(luò)帶寬資源將會(huì)很大。



      技術(shù)實(shí)現(xiàn)要素:

      針對(duì)上述問題,本發(fā)明提出了一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,通過一種高效的編碼方法,在分布式存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí),以最小的存儲(chǔ)容量和帶寬資源來交換數(shù)據(jù)完成多節(jié)點(diǎn)故障的修復(fù),以改進(jìn)現(xiàn)有單節(jié)點(diǎn)故障修復(fù)時(shí)需要節(jié)點(diǎn)存儲(chǔ)容量大、占用網(wǎng)絡(luò)帶寬資源多的問題,提高分布式存儲(chǔ)系統(tǒng)的可靠性。

      為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案包括如下步驟:

      一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,包括以下步驟:

      步驟一:構(gòu)造編碼修復(fù)所需矩陣,給定各個(gè)參數(shù)表示的含義及其限定的范圍,再構(gòu)造編碼和修復(fù)時(shí)所需矩陣;

      步驟二:對(duì)源碼元進(jìn)行編碼并存儲(chǔ);

      步驟三:故障節(jié)點(diǎn)修復(fù),重建數(shù)據(jù);

      步驟四:由各個(gè)節(jié)點(diǎn)存儲(chǔ)的碼元修復(fù)原始數(shù)據(jù)文件。

      進(jìn)一步根據(jù)所述基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,步驟一中構(gòu)造編碼修復(fù)所需矩陣,給定各個(gè)參數(shù)表示的含義及其限定的范圍,再構(gòu)造編碼和修復(fù)時(shí)所需矩陣;

      按如下步驟進(jìn)行:

      (1-1)n表示分布式存儲(chǔ)中存儲(chǔ)節(jié)點(diǎn)的個(gè)數(shù),t表示存儲(chǔ)節(jié)點(diǎn)中出現(xiàn)故障的系統(tǒng)節(jié)點(diǎn)個(gè)數(shù),d表示在修復(fù)故障節(jié)點(diǎn)時(shí)參與修復(fù)的節(jié)點(diǎn)個(gè)數(shù);

      存儲(chǔ)節(jié)點(diǎn)分為兩類:一類為系統(tǒng)節(jié)點(diǎn),用于存儲(chǔ)未經(jīng)編碼的碼元,也叫源碼元,共有k個(gè);另一類為奇偶校驗(yàn)節(jié)點(diǎn),用于在編碼過程中進(jìn)行奇偶校驗(yàn),共有k個(gè);n=2k,d=n-t,k≥t≥2;

      源數(shù)據(jù)文件共有B=k2個(gè)碼元,將這k2個(gè)碼元均勻存儲(chǔ)在k個(gè)系統(tǒng)節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)存儲(chǔ)k個(gè)碼元;

      (1-2)構(gòu)造一個(gè)大小為k×k的非奇異矩陣U和一個(gè)超正則矩陣P,所述非奇異矩陣指該矩陣的行列式不為零,所述超正則矩陣是指這個(gè)矩陣可以分為幾個(gè)子矩陣,且每個(gè)子矩陣都為非奇異矩陣;

      柯西矩陣是一個(gè)超正則矩陣,選取一個(gè)柯西矩陣作為矩陣P;矩陣Q為矩陣P的逆矩陣,則矩陣Q為超正則矩陣;矩陣V=UP,U為非奇異矩陣,則矩陣V為非奇異矩陣,矩陣U=VQ;

      用pij表示P矩陣的元素,qij表示Q矩陣的元素,pi表示矩陣P的第i列,i,j∈{1,2,...,k},ui為矩陣U的第i列,vi為矩陣V的i列;

      為ui's的對(duì)偶基,為vi's的對(duì)偶基,且為的第i列,為的第i列,所述基之間滿足關(guān)系和其中δij是克羅內(nèi)克函數(shù),滿足關(guān)系:

      (1-3)構(gòu)造一個(gè)大小為2×2的超正則對(duì)稱矩陣以及它的逆矩陣這兩個(gè)矩陣滿足關(guān)系:

      進(jìn)一步根據(jù)所述基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,步驟二中對(duì)源碼元進(jìn)行編碼并存儲(chǔ);

      數(shù)據(jù)文件由B=k(d+t-k)=k(n-k)=k2個(gè)碼元組成,用i表示系統(tǒng)節(jié)點(diǎn)的索引,i=1,2,…,k,n個(gè)分布式存儲(chǔ)節(jié)點(diǎn)中,n=2k,前k個(gè)節(jié)點(diǎn)存儲(chǔ)源碼元,后k個(gè)節(jié)點(diǎn)存儲(chǔ)奇偶校驗(yàn)碼元,對(duì)存儲(chǔ)在系統(tǒng)節(jié)點(diǎn)中的源碼元進(jìn)行編碼,并將編碼后的碼元存儲(chǔ)到奇偶校驗(yàn)節(jié)點(diǎn)中;

      用xi表示節(jié)點(diǎn)Ni中的k維向量,xim為向量xi中的各項(xiàng),表示一個(gè)碼元,i=1,2,…,k,m=1,2,…,k;

      當(dāng)j=1,2,…,k時(shí),節(jié)點(diǎn)Nk+j為奇偶校驗(yàn)節(jié)點(diǎn),通過將系統(tǒng)節(jié)點(diǎn)中的碼元編碼為k維向量映射到奇偶校驗(yàn)節(jié)點(diǎn)中存儲(chǔ),其中Ik表示一個(gè)k×k的單位矩陣,則每個(gè)奇偶校驗(yàn)節(jié)點(diǎn)Nk+j存儲(chǔ)了一個(gè)k維向量:

      所述表示(axj1+ex1j)、(axj2+ex2j)、…、(axjk+exkj),i=1,2,…,k,l=1,2,…,k,j=1,2,…,k;

      節(jié)點(diǎn)N1中存儲(chǔ)了一個(gè)4維向量x1,各項(xiàng)分別為x11、x12、x13、x14

      節(jié)點(diǎn)N5中存儲(chǔ)了一個(gè)4維向量,各項(xiàng)分別為其中節(jié)點(diǎn)N2,N3,N4的存儲(chǔ)形式與節(jié)點(diǎn)N1相同,節(jié)點(diǎn)N6,N7,N8的存儲(chǔ)形式與節(jié)點(diǎn)N5相同。

      進(jìn)一步根據(jù)所述基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,步驟三中故障節(jié)點(diǎn)修復(fù),重建數(shù)據(jù),若出現(xiàn)故障的節(jié)點(diǎn)個(gè)數(shù)為t,t≤k,則可以對(duì)這t個(gè)故障節(jié)點(diǎn)進(jìn)行修復(fù);

      按如下步驟進(jìn)行:

      (3-1)在第一個(gè)修復(fù)階段,d個(gè)在故障修復(fù)時(shí)參與修復(fù)的輔助節(jié)點(diǎn)分別向發(fā)生故障后需要重建的每一個(gè)新節(jié)點(diǎn)中發(fā)送一個(gè)碼元,則在這t個(gè)新節(jié)點(diǎn)中,每個(gè)新節(jié)點(diǎn)共收到d個(gè)碼元,即輔助節(jié)點(diǎn)分別發(fā)送該節(jié)點(diǎn)的第1,2,…,t行碼元到節(jié)點(diǎn)N1,N2,…,Nt,則最后每個(gè)故障節(jié)點(diǎn)接收到了n–t個(gè)碼元;

      所述矩陣P非奇異矩陣,可得向量繼而每一個(gè)故障節(jié)點(diǎn)都能得到重建數(shù)據(jù)時(shí)所需的碼元;

      經(jīng)過第一階段的修復(fù),則新節(jié)點(diǎn)Ni可以通過得到節(jié)點(diǎn)Ni中存儲(chǔ)的碼元xii和xik,其中i=1,2,…,k,m=t+1,t+2,…,k,U為單位矩陣,通過構(gòu)造矩陣Y,zi表示矩陣Z=Y(jié)Q的第i列;

      又因?yàn)榫仃嘝為非奇異矩陣,可得向量則節(jié)點(diǎn)N1,N2,N3中待計(jì)算的碼元如下:

      N1:x41,3x11,2x12+x21,2x13+x31,2x14+x41.

      N2:x42,2x21+x12,3x22,2x23+x32,2x24+x42

      N3:x43,2x31+x13,2x32+x23,3x33,2x34+x42.

      又通過可得碼元x11,x22,x33,x44,x14,x24,x34,x44

      (3-2)在第二個(gè)修復(fù)階段,將對(duì)故障節(jié)點(diǎn)中剩余未知的碼元進(jìn)行修復(fù);

      新節(jié)點(diǎn)Ni發(fā)送碼元給新節(jié)點(diǎn)Ni,i,i′∈{1,2,...,t},i≠i′,即新節(jié)點(diǎn)之間再互相交換數(shù)據(jù),完成后,每?jī)蓚€(gè)新節(jié)點(diǎn)共享兩個(gè)未知碼元數(shù)據(jù),并將這兩個(gè)碼元組成一個(gè)大小為2×1的矩陣,分別與矩陣和矩陣相乘,可得新節(jié)點(diǎn)Ni和新節(jié)點(diǎn)Ni中的兩個(gè)未知碼元;

      同理,可得到剩余每對(duì)新節(jié)點(diǎn)中的未知碼元。

      進(jìn)一步根據(jù)所述基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法,步驟四中由各個(gè)節(jié)點(diǎn)存儲(chǔ)的碼元修復(fù)原始數(shù)據(jù)文件;

      數(shù)據(jù)收集器是連接輔助節(jié)點(diǎn)用于修復(fù)原始數(shù)據(jù)的特殊節(jié)點(diǎn),將數(shù)據(jù)收集器連接到前k個(gè)節(jié)點(diǎn)的k-s個(gè)節(jié)點(diǎn),且連接到后k個(gè)節(jié)點(diǎn)的s個(gè)節(jié)點(diǎn),s為0和k之間的正整數(shù),經(jīng)過故障節(jié)點(diǎn)修復(fù)后,數(shù)據(jù)收集器可以任取幾個(gè)節(jié)點(diǎn)的數(shù)據(jù),來修復(fù)原始數(shù)據(jù)文件;

      結(jié)合步驟三,例如,取s=2,選取節(jié)點(diǎn)N3,N4,N5,N6進(jìn)行數(shù)據(jù)文件修復(fù),由于節(jié)點(diǎn)N3,N4中存儲(chǔ)的碼元為源碼元,可直接下載得到,因此,數(shù)據(jù)收集器只需通過矩陣運(yùn)算從節(jié)點(diǎn)N5,N6中解碼得到x11,x12,x13,x14,x21,x22,x23,x24即可;

      節(jié)點(diǎn)5中的碼元如下:

      (3x11,2x12+x21,2x13+x31,2x14+x41).p1 (1)

      (2x21+x12,3x22,2x23+x32,2x24+x42).p1 (2)

      (2x31+x13,2x32+x23,3x33,2x34+x43).p1 (3)

      (2x41+x14,2x42+x24,2x43+x34,3x44).p1 (4)

      節(jié)點(diǎn)6中的碼元如下:

      (3x11,2x12+x21,2x13+x31,2x14+x41).p2 (5)

      (2x21+x12,3x22,2x23+x32,2x24+x42).p2 (6)

      (2x31+x13,2x32+x23,3x33,2x34+x43).p2 (7)

      (2x41+x14,2x42+x24,2x43+x34,3x44).p2 (8)

      式中標(biāo)注了下劃線的碼元為已下載碼元,用(4)式和(8)式中的未知碼元x14,x24構(gòu)造一個(gè)大小為1×2的矩陣與矩陣Π相乘來解碼:[x14 x24].Π,矩陣Π為s×s的子矩陣,即因此可解碼得到未知碼元x14,x24,同理可得(3)式和(7)式中的未知碼元x13,x23

      用(1)、(2)、(5),(6)式中的未知碼元x11,x22,x12,x21構(gòu)造一個(gè)大小為2×2的矩陣與矩陣Π相乘來解碼:因此,可解碼得到未知碼元x11,x12,x21,x22,完成對(duì)原始數(shù)據(jù)文件的修復(fù)。

      本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):

      1.本發(fā)明由于使用了一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)故障協(xié)同修復(fù)方法,使得在修復(fù)過程中,減少了每個(gè)節(jié)點(diǎn)需要存儲(chǔ)的修復(fù)數(shù)據(jù)的數(shù)量;

      2.本發(fā)明由于能減少每個(gè)節(jié)點(diǎn)需要存儲(chǔ)的修復(fù)數(shù)據(jù)數(shù)量,進(jìn)而可以減小在修復(fù)過程中網(wǎng)絡(luò)帶寬資源的消耗;

      3.本發(fā)明在相關(guān)參數(shù)滿足所需條件的情況下,可以修復(fù)t(2≤t≤k)個(gè)系統(tǒng)節(jié)點(diǎn),其中k為系統(tǒng)節(jié)點(diǎn)的個(gè)數(shù)。

      附圖說明

      圖1為本發(fā)明所述的一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法流程。

      具體實(shí)施方式

      為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)本發(fā)明所述方案和效果作進(jìn)一步詳細(xì)描述。

      如圖1所示,本發(fā)明使用一種基于最小存儲(chǔ)再生碼的多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù)方法來完成分布式存儲(chǔ)系統(tǒng)中多節(jié)點(diǎn)數(shù)據(jù)文件的修復(fù),具體實(shí)現(xiàn)步驟如下:

      步驟一:構(gòu)造編碼修復(fù)所需矩陣,給定各個(gè)參數(shù)表示的含義及其限定的范圍,再構(gòu)造編碼和修復(fù)時(shí)所需矩陣,按如下步驟進(jìn)行:

      (1-1)n表示分布式存儲(chǔ)中存儲(chǔ)節(jié)點(diǎn)的個(gè)數(shù),t表示存儲(chǔ)節(jié)點(diǎn)中出現(xiàn)故障的系統(tǒng)節(jié)點(diǎn)個(gè)數(shù),d表示在修復(fù)故障節(jié)點(diǎn)時(shí)參與修復(fù)的節(jié)點(diǎn)個(gè)數(shù)。存儲(chǔ)節(jié)點(diǎn)分為兩類:一類為系統(tǒng)節(jié)點(diǎn),用于存儲(chǔ)未經(jīng)編碼的碼元,也叫源碼元,共有k個(gè);另一類為奇偶校驗(yàn)節(jié)點(diǎn),用于在編碼過程中進(jìn)行奇偶校驗(yàn),共有k個(gè)。n、k、t之間滿足關(guān)系:n=2k,d=n-t,k≥t≥2。源數(shù)據(jù)文件共有B=k2個(gè)碼元,將這k2個(gè)碼元均勻存儲(chǔ)在k個(gè)系統(tǒng)節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)存儲(chǔ)k個(gè)碼元。

      (1-2)構(gòu)造一個(gè)大小為k×k的非奇異矩陣U和一個(gè)超正則矩陣P,其中非奇異矩陣是指該矩陣的行列式不為零,超正則矩陣是指這個(gè)矩陣可以分為幾個(gè)子矩陣,且每個(gè)子矩陣都為非奇異矩陣??挛骶仃囀且粋€(gè)超正則矩陣,選取一個(gè)柯西矩陣作為矩陣P;矩陣Q為矩陣P的逆矩陣,則矩陣Q為超正則矩陣;矩陣V=UP,U為非奇異矩陣,則矩陣V為非奇異矩陣,再令矩陣U=VQ。用pij表示P矩陣的元素,qij表示Q矩陣的元素,pi表示矩陣P的第i列,i,j∈{1,2,...,k}。ui為矩陣U的第i列,vi為矩陣V的i列。為ui's的對(duì)偶基,為vi's的對(duì)偶基,且的第i列,為的第i列,這些基之間滿足關(guān)系和其中δij是克羅內(nèi)克函數(shù),滿足關(guān)系:

      (1-3)構(gòu)造一個(gè)大小為2×2的超正則對(duì)稱矩陣以及它的逆矩陣這兩個(gè)矩陣滿足關(guān)系:

      步驟二:對(duì)源碼元進(jìn)行編碼并存儲(chǔ)。

      數(shù)據(jù)文件由B=k(d+t-k)=k(n-k)=k2個(gè)碼元組成。用i表示系統(tǒng)節(jié)點(diǎn)的索引,i=1,2,…,k,n個(gè)分布式存儲(chǔ)節(jié)點(diǎn)中,n=2k,前k個(gè)節(jié)點(diǎn)存儲(chǔ)源碼元,后k個(gè)節(jié)點(diǎn)存儲(chǔ)奇偶校驗(yàn)碼元。對(duì)存儲(chǔ)在系統(tǒng)節(jié)點(diǎn)中的源碼元進(jìn)行編碼,并將編碼后的碼元存儲(chǔ)到奇偶校驗(yàn)節(jié)點(diǎn)中。

      用xi表示節(jié)點(diǎn)Ni中的k維向量,xim為向量xi中的各項(xiàng),表示一個(gè)碼元,i=1,2,…,k;m=1,2,…,k。當(dāng)j=1,2,…,k時(shí),節(jié)點(diǎn)Nk+j為奇偶校驗(yàn)節(jié)點(diǎn)。通過將系統(tǒng)節(jié)點(diǎn)中的碼元編碼為k維向量映射到奇偶校驗(yàn)節(jié)點(diǎn)中存儲(chǔ),其中Ik表示一個(gè)k×k的單位矩陣。

      則每個(gè)奇偶校驗(yàn)節(jié)點(diǎn)Nk+j存儲(chǔ)了一個(gè)k維向量:

      所述表示(axj1+ex1j)、(axj2+ex2j)、…、(axjk+exkj),i=1,2,…,k,l=1,2,…,k,j=1,2,…,k。

      如表1所示,n=8,a=2,e=1,N1、N2、N3、N4為系統(tǒng)節(jié)點(diǎn),N5、N6、N7、N8為奇偶校驗(yàn)節(jié)點(diǎn)。

      表1 對(duì)源碼元進(jìn)行編碼存儲(chǔ)后各節(jié)點(diǎn)中的碼元存儲(chǔ)形式

      節(jié)點(diǎn)N1中存儲(chǔ)了一個(gè)4維向量x1,各項(xiàng)分別為x11、x12、x13、x14。節(jié)點(diǎn)N5中存儲(chǔ)了一個(gè)4維向量,各項(xiàng)分別為其中節(jié)點(diǎn)N2,N3,N4的存儲(chǔ)形式與節(jié)點(diǎn)N1相同,節(jié)點(diǎn)N6,N7,N8的存儲(chǔ)形式與節(jié)點(diǎn)N5相同。僅以此為例,包括但不僅限于本種情況。

      步驟三:故障節(jié)點(diǎn)修復(fù),重建數(shù)據(jù)。

      若出現(xiàn)故障的節(jié)點(diǎn)個(gè)數(shù)為t,t≤k,則可以對(duì)這t個(gè)故障節(jié)點(diǎn)進(jìn)行修復(fù)。

      (3-1)在第一個(gè)修復(fù)階段,d個(gè)在故障修復(fù)時(shí)參與修復(fù)的輔助節(jié)點(diǎn)分別向發(fā)生故障后需要重建的每一個(gè)新節(jié)點(diǎn)中發(fā)送一個(gè)碼元,則在這t個(gè)新節(jié)點(diǎn)中,每個(gè)新節(jié)點(diǎn)共收到d個(gè)碼元。即輔助節(jié)點(diǎn)分別發(fā)送該節(jié)點(diǎn)的第1,2,…,t行碼元到節(jié)點(diǎn)N1,N2,…,Nt。最后,每個(gè)故障節(jié)點(diǎn)接收到了n–t個(gè)碼元。因?yàn)榫仃嘝是一個(gè)非奇異矩陣,可得向量繼而每一個(gè)故障節(jié)點(diǎn)都能得到重建數(shù)據(jù)時(shí)所需的碼元。經(jīng)過第一階段的修復(fù),新節(jié)點(diǎn)Ni可以通過得到節(jié)點(diǎn)Ni中存儲(chǔ)的碼元xii和xik,其中i=1,2,…,k;m=t+1,t+2,…,k;U為單位矩陣,通過構(gòu)造矩陣Y,zi表示矩陣Z=Y(jié)Q的第i列。

      如表1所示,取假設(shè)t=3,出現(xiàn)故障的節(jié)點(diǎn)是節(jié)點(diǎn)N1,N2,N3。則在第一個(gè)修復(fù)階段中,節(jié)點(diǎn)N4到節(jié)點(diǎn)N8分別將各自節(jié)點(diǎn)的第一行碼元發(fā)送給節(jié)點(diǎn)N1,第二行碼元發(fā)送給節(jié)點(diǎn)N2,第三行碼元發(fā)送給節(jié)點(diǎn)N3。當(dāng)i=1,2,3時(shí),新節(jié)點(diǎn)Ni接收到的碼元為:x4i

      又因?yàn)榫仃嘝為非奇異矩陣,可得向量則節(jié)點(diǎn)N1,N2,N3中待計(jì)算的碼元如下:

      N1:x41,3x11,2x12+x21,2x13+x31,2x14+x41.

      N2:x42,2x21+x12,3x22,2x23+x32,2x24+x42

      N3:x43,2x31+x13,2x32+x23,3x33,2x34+x42.

      又通過可得碼元x11,x22,x33,x44,x14,x24,x34,x44。

      (3-2)在第二個(gè)修復(fù)階段,將對(duì)故障節(jié)點(diǎn)中剩余未知的碼元進(jìn)行修復(fù)。新節(jié)點(diǎn)Ni發(fā)送碼元給新節(jié)點(diǎn)Ni,i,i′∈{1,2,...,t},i≠i′,即新節(jié)點(diǎn)之間再互相交換數(shù)據(jù),完成后,每?jī)蓚€(gè)新節(jié)點(diǎn)共享兩個(gè)未知碼元數(shù)據(jù),并將這兩個(gè)碼元組成一個(gè)大小為2×1的矩陣,分別與矩陣和矩陣相乘,可得新節(jié)點(diǎn)Ni和新節(jié)點(diǎn)Ni中的兩個(gè)未知碼元。

      同理,可得到剩余每對(duì)新節(jié)點(diǎn)中的未知碼元。

      在第一階段和第二階段的修復(fù)過程中傳輸碼元的總數(shù)為td+t(t-1)每個(gè)故障節(jié)點(diǎn)傳輸符號(hào)的總數(shù)為γ=d+t-1。

      結(jié)合表1以及步驟(3-1)中示例,節(jié)點(diǎn)N1與節(jié)點(diǎn)N2交換碼元2x12+x21和2x21+x12;節(jié)點(diǎn)N1和N2交換碼元2x13+x31和2x31+x13,節(jié)點(diǎn)N2和節(jié)點(diǎn)N3交換碼元2x23+x32和2x32+x23。通過和可解碼得到x12,x21,x13,x31,同理,可解碼得到其他碼元。

      步驟四:由各個(gè)節(jié)點(diǎn)存儲(chǔ)的碼元修復(fù)原始數(shù)據(jù)文件。

      數(shù)據(jù)收集器是連接輔助節(jié)點(diǎn)用于修復(fù)原始數(shù)據(jù)的特殊節(jié)點(diǎn),將數(shù)據(jù)收集器連接到前k個(gè)節(jié)點(diǎn)的k-s個(gè)節(jié)點(diǎn),且連接到后k個(gè)節(jié)點(diǎn)的s個(gè)節(jié)點(diǎn),s為0和k之間的正整數(shù)。經(jīng)過故障節(jié)點(diǎn)修復(fù)后,數(shù)據(jù)收集器可以任取幾個(gè)節(jié)點(diǎn)的數(shù)據(jù),來修復(fù)原始數(shù)據(jù)文件。

      結(jié)合步驟三,例如,取s=2,選取節(jié)點(diǎn)N3,N4,N5,N6進(jìn)行數(shù)據(jù)文件修復(fù),由于節(jié)點(diǎn)N3,N4中存儲(chǔ)的碼元為源碼元,可直接下載得到,因此,數(shù)據(jù)收集器只需通過矩陣運(yùn)算從節(jié)點(diǎn)N5,N6中解碼得到x11,x12,x13,x14,x21,x22,x23,x24即可。

      節(jié)點(diǎn)5中的碼元如下:

      (3x11,2x12+x21,2x13+x31,2x14+x41).p1 (1)

      (2x21+x12,3x22,2x23+x32,2x24+x42).p1 (2)

      (2x31+x13,2x32+x23,3x33,2x34+x43).p1 (3)

      (2x41+x14,2x42+x24,2x43+x34,3x44).p1 (4)

      節(jié)點(diǎn)6中的碼元如下:

      (3x11,2x12+x21,2x13+x31,2x14+x41).p2 (5)

      (2x21+x12,3x22,2x23+x32,2x24+x42).p2 (6)

      (2x31+x13,2x32+x23,3x33,2x34+x43).p2 (7)

      (2x41+x14,2x42+x24,2x43+x34,3x44).p2 (8)

      式中標(biāo)注了下劃線的碼元為已下載碼元,用(4)式和(8)式中的未知碼元x14,x24構(gòu)造一個(gè)大小為1×2的矩陣與矩陣Π相乘來解碼:[x14 x24].Π,矩陣Π為s×s的子矩陣,即因此可解碼得到未知碼元x14,x24,同理可得(3)式和(7)式中的未知碼元x13,x23。用(1)、(2)、(5),(6)式中的未知碼元x11,x22,x12,x21構(gòu)造一個(gè)大小為2×2的矩陣與矩陣Π相乘來解碼:因此,可解碼得到未知碼元x11,x12,x21,x22,完成了對(duì)原始數(shù)據(jù)文件的修復(fù)。

      上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,并非對(duì)實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其他不同形式的變化或變動(dòng)。這里無需也無法對(duì)所有的實(shí)施方式予以窮舉,而由此所引申出的顯而易見的變化或變動(dòng)仍處于本發(fā)明的保護(hù)范圍之中。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1