一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法【專利摘要】本發(fā)明公開了一種適用于分布式存儲系統(tǒng)的基于有限域下二進(jìn)制加法移位的容錯性再生碼方法。該方法基于乘積矩陣框架,在二進(jìn)制加法移位BASIC再生碼的基礎(chǔ)上引入有限域運(yùn)算,克服了BASIC再生碼方案在編碼矩陣行列式不存在乘法逆元的情況下會造成無法恢復(fù)數(shù)據(jù)的問題,而且并沒有引入額外的計(jì)算開銷。【專利說明】-種基于有限域二進(jìn)制加法移位的再生碼容錯性方法
技術(shù)領(lǐng)域:
[0001]本發(fā)明設(shè)及分布式存儲領(lǐng)域,特別是設(shè)及針對分布式存儲系統(tǒng)的一種再生碼容錯性方法?!?br>背景技術(shù):
】[0002]大數(shù)據(jù)下的分布式存儲系統(tǒng)是由大規(guī)模的服務(wù)器構(gòu)成,在動態(tài)的網(wǎng)絡(luò)環(huán)境下服務(wù)器巖機(jī)是頻繁發(fā)生的,將再生碼容錯性技術(shù)引入到分布式存儲系統(tǒng)的主要目的是保證分布式存儲系統(tǒng)的可靠性。[0003]現(xiàn)有的實(shí)現(xiàn)數(shù)據(jù)容錯技術(shù)主要的途徑就是通過增加分布式存儲系統(tǒng)中的數(shù)據(jù)冗余來實(shí)現(xiàn),但也增大了存儲負(fù)擔(dān),所W需要提高其效率,用更小的數(shù)據(jù)冗余來保證更高的可靠性,最終降低系統(tǒng)成本。常見的分布式存儲系統(tǒng)的容錯技術(shù)主要有基于復(fù)制的容錯技術(shù)、基于糾刪碼的容錯技術(shù)和再生碼的容錯技術(shù)。[0004]其中Rashmi等人提出了一種通用的乘積矩陣框架的再生碼來實(shí)現(xiàn)精確的容錯修復(fù)過程,簡化再生過程,而2013年化U等人在乘積矩陣再生碼的基礎(chǔ)上提出了BASIC(Bina巧AdditionandShiftImplementableConvolutional)再生碼,通過使用移位操作來代替有限域內(nèi)的運(yùn)算,提升計(jì)算效率且更易于實(shí)現(xiàn),但是BASIC再生碼在編碼矩陣的行列式不存在乘法逆元時,將出現(xiàn)無法恢復(fù)數(shù)據(jù)的問題,運(yùn)將造成原始數(shù)據(jù)永久丟失。[000引在BASIC再生碼的基礎(chǔ)上,我們提出了G-BASIC(Galoisfield'sBinaryAdditionandShiftImplementableConvolutional)再生碼方案,解決無法恢復(fù)數(shù)據(jù)的問題,并不引入額外的計(jì)算開銷?!?br/>發(fā)明內(nèi)容】[0006]發(fā)明目的:本發(fā)明提供一種應(yīng)用于分布式存儲系統(tǒng)的再生碼容錯性方法,該方法采用有限域下的二進(jìn)制加法移位運(yùn)算,可W快速實(shí)現(xiàn)數(shù)據(jù)的修復(fù)和重建,并且解決傳統(tǒng)BASIC再生碼方案可能出現(xiàn)無法恢復(fù)數(shù)據(jù)的問題,同時未引入額外的計(jì)算開銷。[0007]技術(shù)方案:為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用如下技術(shù)方案:[000引一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,該方法在二進(jìn)制加法移位BASIC再生碼的基礎(chǔ)上引入有限域運(yùn)算,編碼過程的步驟如下:[0009](1)根據(jù)子數(shù)據(jù)包長度1,將長度為n的數(shù)據(jù)包分為n'個子數(shù)據(jù)包,=?每個子數(shù)據(jù)包對應(yīng)一個子消息矩陣;[0010](2)將編碼矩陣分別與運(yùn)n'個子消息矩陣相乘積進(jìn)行編碼,生成n'個子存儲矩陣;其中矩陣的乘積采用有限域下的二進(jìn)制加法移位運(yùn)算。[0011]進(jìn)一步地,上述方法中,根據(jù)子數(shù)據(jù)包長度1選取有限域GF(2i)。[0012]進(jìn)一步地,上述方法中,所述有限域下的二進(jìn)制加法移位運(yùn)算方法根據(jù)如下公式實(shí)現(xiàn)二進(jìn)制序列a(x)=a〇+a巧+a巧2+...+曰1_巧1-1和b(x)=b〇+b巧+b2x2+...+心巧1-1的乘積:[0013][0014],11為曰片)的系數(shù){ai}中為I的個數(shù);運(yùn)些為I的系數(shù)記為^[0015]畏域的不可約多項(xiàng)式。[0016]進(jìn)一步地,飛的根據(jù)如下公式計(jì)算:[0017][0018],.滿足yimo血(X)=n(x)。[0019]進(jìn)一步地,上述方法中,修復(fù)過程的步驟如下:[0020](1)失效節(jié)點(diǎn)f連接任意d個修復(fù)節(jié)點(diǎn)集合化JIj=l,...,d},修復(fù)節(jié)點(diǎn)hj計(jì)算內(nèi)部乘積值E,=始^始巧^其中矩陣的乘積采用有限域下的二進(jìn)制加法移位運(yùn)算;為修復(fù)節(jié)點(diǎn)hj對應(yīng)的編碼行向量,M為消息矩陣,鮮為失效節(jié)點(diǎn)的編碼列向量;[0021](2)替代節(jié)點(diǎn)從d個修復(fù)節(jié)點(diǎn)中獲取d個內(nèi)部乘積值組成乘積向量[00。](3)替代節(jié)點(diǎn)通過對乘積向量寫左乘((16*(^^6。3")尸曰(1^'(^^6。3"),得到失效節(jié)點(diǎn)數(shù)據(jù),其中Wrepair是dXd的可逆矩陣。[0023]有益效果:本發(fā)明方法通過定義有限域中的相關(guān)運(yùn)算,針對BASIC再生碼方案在編碼矩陣的行列式不存在乘法逆元時,出現(xiàn)無法完成數(shù)據(jù)重建的問題,G-BASIC再生碼在引入有限域后,保證在任何情況下均可正確的實(shí)現(xiàn)數(shù)據(jù)重建。并且,BASIC再生碼和G-BASIC再生碼,進(jìn)行化it數(shù)據(jù)的異或運(yùn)算的次數(shù)相同,本發(fā)明方法并不引入額外的計(jì)算開銷?!靖綀D說明】[0024]圖1是BASIC再生碼和G-BASIC再生碼完成編碼過程的時間曲線對比圖?!揪唧w實(shí)施方式】[0025]下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解運(yùn)些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。[0026]本發(fā)明實(shí)施例公開的一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,該方法在二進(jìn)制加法移位BASIC再生碼的基礎(chǔ)上引入有限域運(yùn)算,W快速實(shí)現(xiàn)編碼和重建,客服BASIC再生碼方案在編碼矩陣行列式不存在乘法逆元的情況下會造成無法恢復(fù)數(shù)據(jù)的問題,而且并沒有引入額外的計(jì)算開銷。本發(fā)明方法在編碼階段的主要步驟如下:[0027](1)將長度為n的數(shù)據(jù)包拆分為n'個子數(shù)據(jù)包,子數(shù)據(jù)包長度為1,一般可取2的整數(shù)幕,其中:[002引巧'二|_"パ_[0029]對應(yīng)的消息矩陣M,也可拆分為n'個子消息矩陣,即:[0030]M={Ml,M2,...,Mn-}[0031](2)G-BASIC的編碼過程相當(dāng)于對運(yùn)n'個子消息矩陣分別做編碼,即:[0032]Ci=WMi[0033]其中,W為編碼矩陣,Cl為子存儲矩陣,產(chǎn)生的n'個子存儲矩陣構(gòu)成了存儲矩陣C,即:[0034]C={Ci,C2,...,Cn'}[0035]編碼過程中,根據(jù)子數(shù)據(jù)長度1選取有限域GF(2i),并確定有限域?qū)?yīng)長度為1的不可約多項(xiàng)式m(x)。如在1=3時,m(x)可取1+X+X3。[0036]具體編碼過程的乘法移位運(yùn)算如下所示:[0037][00;3引[0039]本發(fā)明方法在修復(fù)階段的主要步驟如下:[0040](1)失效節(jié)點(diǎn)連接任意d個修復(fù)節(jié)點(diǎn)集合,修復(fù)節(jié)點(diǎn)hj計(jì)算內(nèi)部乘積值Ej。[0041](2)替代節(jié)點(diǎn)從d個修復(fù)節(jié)點(diǎn)中獲取d個內(nèi)部乘積值£組成乘積向量C。[0042](3)替代節(jié)點(diǎn)通過對乘積向量C左乘(det(y^repair))-ladj(Wrepair),得到失效節(jié)點(diǎn)數(shù)據(jù)。[0043]具體的:令^失效節(jié)點(diǎn)的編碼列向量,<表示*?^的轉(zhuǎn)置,那么存儲在失效節(jié)點(diǎn)的存儲向量Cf,滿足:[0044][0045]失效節(jié)點(diǎn)f連接任意d個修復(fù)節(jié)點(diǎn)集合化jIj=l,...,d},修復(fù)節(jié)點(diǎn)hj計(jì)算內(nèi)部乘積值Ej,滿足:[0046][0047]其中夢!,,為修復(fù)節(jié)點(diǎn)hj對應(yīng)的編碼行向量。[0048]替代節(jié)點(diǎn)從d個修復(fù)節(jié)點(diǎn)中獲取d個內(nèi)部乘積值e組成乘積向量I,滿足:[0049][0050]其中;[0化1][0052]修復(fù)矩陣Wrepair是(dXd)的可逆矩陣,在構(gòu)建時M是對稱矩陣,滿足:[0化3][0054]替代節(jié)點(diǎn)通過對|左乘((16*(y^epair))-ladj(Wrepair),得到向量。'f,即:[0055]C'f=(det(Wrepair))-ladj(WrepairH[0056]最終,可W推導(dǎo)出:[0化7][005引運(yùn)樣就修復(fù)了失效節(jié)點(diǎn)的存儲數(shù)據(jù)。[0059]下面Wn=6,k=3,d=4的再生碼為例,模擬BASIC再生碼和G-BASIC再生碼的編碼過程。[0060]首先對于BASIC再生碼和G-BASIC再生碼進(jìn)行條件約定,對于BASIC再生碼,需要根據(jù)測試數(shù)據(jù)包的長度選擇適合的模2"運(yùn)算。而對于G-BASIC再生碼,因?yàn)橛?jì)算機(jī)讀取數(shù)據(jù)時W字節(jié)為單位,所W選擇子數(shù)據(jù)包長為8比較方便,故G-BASIC再生碼采用基于GF(28)有限域的運(yùn)算,對應(yīng)的不可約多項(xiàng)式m(x)=l+x8。[0061]然后將數(shù)據(jù)分為9個數(shù)據(jù)包,構(gòu)建消息矩陣M。[0062]再確定編碼矩陣,本次仿真設(shè)置編碼矩陣W滿足:[0063][0064]為不失一般性,測試數(shù)據(jù)量的大小分別設(shè)置為0.化B、1KB、10KB、100KB、1000KB、l〇3'l邸、l〇3'2邸、l〇3'3邸、l〇3'4邸、iq3'5邸、i〇3'6邸、i〇3'7邸、i〇3'8邸、i〇3'9邸、10MB。[0065]最終獲得在上述不同大小的數(shù)據(jù)量下,BASIC再生碼和G-BASIC再生碼完成編碼過程的時間曲線,如圖1所示。從圖中可W看出,BASIC再生碼和G-BASIC再生碼在相同數(shù)據(jù)量的條件下編碼耗時基本一致,運(yùn)表明了在實(shí)際仿真測試中G-BASIC再生碼在解決BASIC再生碼存在的問題后沒有引入過多的額外計(jì)算開銷?!局鳈?quán)項(xiàng)】1.一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,其特征在于:該方法在二進(jìn)制加法移位BASIC再生碼的基礎(chǔ)上引入有限域運(yùn)算,編碼過程的步驟如下:(1)根據(jù)子數(shù)據(jù)包長度1,將長度為η的數(shù)據(jù)包分為η'個子數(shù)據(jù)包,《^^,每個子數(shù)據(jù)包對應(yīng)一個子消息矩陣;(2)將編碼矩陣分別與這η'個子消息矩陣相乘積進(jìn)行編碼,生成η'個子存儲矩陣;其中矩陣的乘積采用有限域下的二進(jìn)制加法移位運(yùn)算。2.根據(jù)權(quán)利要求1所述的一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,其特征在于:根據(jù)子數(shù)據(jù)包長度1選取有限域GFU1)。3.根據(jù)權(quán)利要求2所述的一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,其特征在于:所述有限域下的二進(jìn)制加法移位運(yùn)算方法根據(jù)如下公式實(shí)現(xiàn)二進(jìn)制序列a(x)=ao+已1叉+&2叉2+...+&1-1叉1-1和13(叉)=13()+131叉+匕2叉2+...+131-1叉1-1的乘積:其中:1為a(x)的系數(shù){ai}中為1的個數(shù);這些為1的系數(shù)記為足(Xv〇<Vl<···<Vu-1<1-1;I長度為1有限域的不可約多項(xiàng)式。4.根據(jù)權(quán)利要求3所述的一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,其特征在于:(》)根據(jù)如下公式計(jì)算:其中茜足X1modm(x)=n(x)。5.根據(jù)權(quán)利要求1所述的一種基于有限域二進(jìn)制加法移位的再生碼容錯性方法,其特征在于:修復(fù)過程的步驟如下:(1)失效節(jié)點(diǎn)f連接任意d個修復(fù)節(jié)點(diǎn)集合{hj|j=l,...,d},修復(fù)節(jié)點(diǎn)hj計(jì)算內(nèi)部乘積值士;其中矩陣的乘積采用有限域下的二進(jìn)制加法移位運(yùn)算;為修復(fù)節(jié)點(diǎn)對應(yīng)的編碼行向量,Μ為消息矩陣,為失效節(jié)點(diǎn)的編碼列向量;(2)替代節(jié)點(diǎn)從d個修復(fù)節(jié)點(diǎn)中獲取d個內(nèi)部乘積值組成乘積向量ξ;(3)替代節(jié)點(diǎn)通過對乘積向量|左乘((161:(^1/1^_)廣:^(1」(^1/1^_),得到失效節(jié)點(diǎn)數(shù)據(jù),其中Wrepair是dXd的可逆矩陣?!疚臋n編號】G06F11/08GK105955839SQ201610301776【公開日】2016年9月21日【申請日】2016年5月9日【發(fā)明人】黃杰,許金樂,李凡,倪廣源,衛(wèi)錦,朱仟,曹山山,閔溪青,萬棄寒,張?jiān)讫垺旧暾埲恕繓|南大學(xué)