亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼方法與流程

文檔序號(hào):12494260閱讀:305來源:國知局
一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼方法與流程

本發(fā)明涉及分布式存儲(chǔ)領(lǐng)域,特別是一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼方法。



背景技術(shù):

分布式存儲(chǔ)系統(tǒng)因其投入成本低,存儲(chǔ)效率高等優(yōu)點(diǎn)而廣泛被大型網(wǎng)絡(luò)應(yīng)用所采納,但是受到頻發(fā)的故障、維護(hù)等因素的影響,分布式存儲(chǔ)系統(tǒng)各個(gè)分離的存儲(chǔ)節(jié)點(diǎn)的可靠性已經(jīng)成為影響分布式存儲(chǔ)系統(tǒng)性能的重要因素。目前,以糾刪碼為代表的差錯(cuò)控制編碼技術(shù)已經(jīng)應(yīng)用到分布式存儲(chǔ)系統(tǒng)中。

最大距離可分(Maximum distance separable,MDS)碼是一種最常用于存儲(chǔ)系統(tǒng)的糾刪碼技術(shù),在一個(gè)參數(shù)為(n,k,d)的MDS碼中,n代表碼長,k為信息的維度,它的最小漢明距離是d=n-k+1。對于固定的參數(shù)n和k,MDS碼的最小漢明距離d=n-k+1達(dá)到了最大的可能取值,因此最大距離可分碼可以糾正碼字中多達(dá)(n-k)個(gè)刪除錯(cuò)誤。使用參數(shù)為(n,k)的最大距離可分碼進(jìn)行編碼的分布式存儲(chǔ)系統(tǒng)如圖1所示,該分布式存儲(chǔ)系統(tǒng)首先將待存儲(chǔ)的原始數(shù)據(jù)分割成k個(gè)信息片段,然后使用(n,k)最大距離可分碼編碼成n個(gè)信息片段,最后再將這n個(gè)信息片段分散的存儲(chǔ)在n個(gè)分離的節(jié)點(diǎn)中去。這樣便可以用系統(tǒng)中任意k個(gè)節(jié)點(diǎn)信息恢復(fù)出原始數(shù)據(jù),換言之,整個(gè)系統(tǒng)可以抵抗任意(n-k)的節(jié)點(diǎn)的損壞。

通過引入冗余信息,整個(gè)系統(tǒng)的可靠性有了大幅度的提升。當(dāng)一些節(jié)點(diǎn)損壞后,利用健全節(jié)點(diǎn)的數(shù)據(jù)來恢復(fù)損壞節(jié)點(diǎn)內(nèi)丟失的數(shù)據(jù)的節(jié)點(diǎn)修復(fù)技術(shù)也成為了保持整個(gè)分布式存儲(chǔ)系統(tǒng)可靠性的一個(gè)最主要的手段。節(jié)點(diǎn)修復(fù)的示意圖如圖2所示,衡量一個(gè)節(jié)點(diǎn)修復(fù)技術(shù)性能的一個(gè)關(guān)鍵指標(biāo)叫做“修復(fù)帶寬”,修復(fù)帶寬是指為了修復(fù)分布式存儲(chǔ)系統(tǒng)中的單個(gè)損壞節(jié)點(diǎn)而需要從其他健全節(jié)點(diǎn)獲取的數(shù)據(jù)量。

對于采用MDS編碼的分布式存儲(chǔ)系統(tǒng),當(dāng)然可以利用MDS碼自身的刪除修復(fù)特性來進(jìn)行節(jié)點(diǎn)修復(fù),但是這個(gè)過程的修復(fù)帶寬比較大:假如采用參數(shù)為(n,k)的MDS編碼的分布式存儲(chǔ)的一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生損毀,利用剩下任意k個(gè)健全節(jié)點(diǎn)的數(shù)據(jù)就能恢復(fù)出整個(gè)文件系統(tǒng),從而修復(fù)了損毀節(jié)點(diǎn)的數(shù)據(jù)??梢姶诉^程的修復(fù)帶寬為k個(gè)節(jié)點(diǎn)的數(shù)據(jù)量,相當(dāng)于原始存儲(chǔ)信息的大小。當(dāng)前有很多研究者都致力于分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)修復(fù)的方法的研究,其中具有代表性的工作是再生碼(Regenerating Codes)。2010年美國南加州大學(xué)的A.G.Dimakis教授提出了用再生碼來減少分布式存儲(chǔ)系統(tǒng)修復(fù)節(jié)點(diǎn)數(shù)據(jù)時(shí)所需要的修復(fù)帶寬。再生碼利用網(wǎng)絡(luò)編碼的思想,將存儲(chǔ)和修復(fù)過程轉(zhuǎn)化為多播問題,并利用圖論中的最大流最小割理論推導(dǎo)出了再生碼可以達(dá)到的修復(fù)帶寬的理論下界。但是再生碼在面對實(shí)際系統(tǒng)的使用存在幾個(gè)很大的問題:1、再生碼不能在存儲(chǔ)系統(tǒng)原有的編碼基礎(chǔ)上升級,而是要重新設(shè)計(jì)部署整個(gè)系統(tǒng),系統(tǒng)改造成本較大;2、再生碼并不是對所有碼參數(shù)(n,k為任意滿足n>k的整數(shù))都有效;3、再生碼的構(gòu)造過程復(fù)雜,其修復(fù)過程的計(jì)算復(fù)雜度也很大,因此目前幾乎沒有采用再生碼的分布式存儲(chǔ)系統(tǒng)。



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

本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供了一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼方法。

本發(fā)明的技術(shù)解決方案是:一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼方法,包括如下步驟:

(1)提取當(dāng)前分布式存儲(chǔ)系統(tǒng)所采用的糾刪碼參數(shù),使用糾刪碼參數(shù)對原始信息進(jìn)行編碼并分別存儲(chǔ)在分布式存儲(chǔ)系統(tǒng);

(2)生成多組分布式存儲(chǔ)系統(tǒng)編碼模型;

(3)生成擴(kuò)展后的存儲(chǔ)結(jié)構(gòu),其中,擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)中每一行分別代表分布式存儲(chǔ)系統(tǒng)中的每一個(gè)存儲(chǔ)節(jié)點(diǎn);

(4)根據(jù)擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)生成附加信息構(gòu)造矩陣,當(dāng)分布式存儲(chǔ)系統(tǒng)中系統(tǒng)節(jié)點(diǎn)數(shù)據(jù)損壞時(shí),使用附加信息構(gòu)造矩陣完成當(dāng)前損壞節(jié)點(diǎn)修復(fù)。

所述的提取當(dāng)前分布式存儲(chǔ)系統(tǒng)所采用的糾刪碼參數(shù),使用糾刪碼參數(shù)對原始信息進(jìn)行編碼并分別存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)的方法為,提取當(dāng)前分布式存儲(chǔ)系統(tǒng)所采用的糾刪碼參數(shù),假設(shè)當(dāng)前分布式存儲(chǔ)系統(tǒng)采用系統(tǒng)型糾刪碼參數(shù)(n,k,r),n表示系統(tǒng)型糾刪碼碼長,k表示系統(tǒng)型糾刪碼碼字中信息維度,r表示系統(tǒng)型糾刪碼碼字中校驗(yàn)信息個(gè)數(shù),n=r+k,在當(dāng)前分布式存儲(chǔ)系統(tǒng)中原始信息被分為k個(gè)數(shù)據(jù)段,然后利用參數(shù)為(n,k,r)的系統(tǒng)型糾刪碼將原始信息的k個(gè)數(shù)據(jù)段編碼成n個(gè)數(shù)據(jù)段,編碼后的n個(gè)數(shù)據(jù)段分別存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)的n個(gè)離散節(jié)點(diǎn)中;所述的分布式存儲(chǔ)系統(tǒng)包括n個(gè)節(jié)點(diǎn),k個(gè)系統(tǒng)節(jié)點(diǎn),r個(gè)校驗(yàn)節(jié)點(diǎn),采用的r個(gè)維度為k的編碼向量為p1、p2、…、pr。

所述的生成多組分布式存儲(chǔ)系統(tǒng)編碼模型的方法為,引入變量s、p,用維度為k的向量u=[u1,u2,…,uk]代表分布式存儲(chǔ)系統(tǒng)需要編碼的原始信息,進(jìn)而得到當(dāng)i不大于k時(shí)分布式存儲(chǔ)系統(tǒng)中第i個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)用ui表示,當(dāng)i大于k時(shí)分布式存儲(chǔ)系統(tǒng)中第i個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)用表示,i=1,2,3,…,k,k+1,k+2,…,n,得到分布式存儲(chǔ)系統(tǒng)中各個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)分別用u1,u2,…,uk,表示,并作為編碼模型,遍歷s+p次,得到s+p組編碼模型;其中,第j組編碼模型記為uj,1,uj,2,…,uj,k,uj=[uj,1,uj,2,…,uj,k]表示第j組編碼模型使用的原始信息代表向量,uj,x表示uj中的第x個(gè)原始信息,s表示保護(hù)列的列數(shù),p表示設(shè)計(jì)列的列數(shù),x=1,2,…,k,j=1,2,…,s+p,s為保護(hù)列的列數(shù),p為設(shè)計(jì)列的列數(shù)。

所述的生成擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)的方法為,將第j組uj,1,uj,2,…,uj,k,作為當(dāng)前分布式存儲(chǔ)系統(tǒng)擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)的第j列,遍歷所有j的取值,得到擴(kuò)展后的存儲(chǔ)結(jié)構(gòu),擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)中每一行分別代表分布式存儲(chǔ)系統(tǒng)中的每一個(gè)存儲(chǔ)節(jié)點(diǎn),將擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)中第1到第k行的第1到第s列作為區(qū)域A,將第1到第k+1行的第s+1到第s+p列作為區(qū)域B,將擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)中第k+1到第k+r行的第1到第s列作為區(qū)域C,將擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)中第k+2到第k+r行的第s+1到第s+p列作為區(qū)域D。

所述的根據(jù)擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)生成附加信息構(gòu)造矩陣,當(dāng)分布式存儲(chǔ)系統(tǒng)中系統(tǒng)節(jié)點(diǎn)數(shù)據(jù)損壞時(shí),使用附加信息構(gòu)造矩陣完成當(dāng)前損壞節(jié)點(diǎn)修復(fù)的方法包括如下步驟:

(1)計(jì)算generalized piggybacking code的歸一化修復(fù)帶寬函數(shù)γ為

其中,

定義保護(hù)列、設(shè)計(jì)列的比例為

求出γ的下界為

將γ的下界記為Γlow(pp),進(jìn)而得到

其中,s為保護(hù)列的列數(shù),p為設(shè)計(jì)列的列數(shù);

(2)求出Γlow(pp)關(guān)于pp的偏導(dǎo)數(shù)為

然后令Γlow(pp)關(guān)于pp的偏導(dǎo)數(shù)為0,確定Γlow(pp)取為正數(shù)的極小值時(shí)pp的值為

(3)如果不是0.25的倍數(shù),則在左側(cè)選取兩個(gè)與最近且為0.25倍數(shù)的數(shù),記為d1、d2,在右側(cè)選取兩個(gè)與最近且為0.25倍數(shù)的數(shù),記為d3、d4,進(jìn)而得到4組變量s、p取值,并記為(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4),其中,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在1組取值令γ最小,將該組取值作為變量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少兩組取值令γ最小且s+p的取值不等,將令γ最小且s+p最小的取值作為變量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少兩組取值令γ最小且s+p的取值相等,從令令γ最小且s+p的取值相等的至少兩組取值中任選1組作為變量s、p取值;

如果是0.25的倍數(shù),則將表示為最簡分?jǐn)?shù),將最簡分?jǐn)?shù)的分子作為變量s取值,最簡分?jǐn)?shù)的分母減去分子作為變量p取值;

(4)根據(jù)步驟(3)得到的變量s、p取值,建立一個(gè)的附加信息構(gòu)造矩陣,從擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)A區(qū)中按行依次取出數(shù)據(jù),并按行將取出的數(shù)據(jù)依次填充到附加信息構(gòu)造矩陣的對應(yīng)位置,當(dāng)A區(qū)所有的數(shù)據(jù)被取出并填充到附加信息構(gòu)造矩陣后,把附加信息構(gòu)造矩陣的(r-1)p個(gè)列的值進(jìn)行疊加,進(jìn)而得到(r-1)p個(gè)累加值,將這些累加值命名為附加信息,然后按任意順序把(r-1)p個(gè)附加信息分別與擴(kuò)展后的存儲(chǔ)結(jié)構(gòu)D區(qū)的(r-1)p個(gè)校驗(yàn)數(shù)據(jù)相加,并分別替換存儲(chǔ)結(jié)構(gòu)D區(qū)的(r-1)p個(gè)校驗(yàn)數(shù)據(jù),完成用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)的編碼,其中,當(dāng)分布式存儲(chǔ)系統(tǒng)中一個(gè)系統(tǒng)節(jié)點(diǎn)數(shù)據(jù)損壞時(shí),下載所有B區(qū)健全節(jié)點(diǎn)數(shù)據(jù),進(jìn)而通過譯碼得到當(dāng)前損壞節(jié)點(diǎn)的B區(qū)數(shù)據(jù),從D區(qū)下載與A區(qū)當(dāng)前損壞節(jié)點(diǎn)中相關(guān)的數(shù)據(jù),得到A區(qū)當(dāng)前損壞節(jié)點(diǎn)相關(guān)的附加信息與校驗(yàn)數(shù)據(jù)的疊加,將附加信息與校驗(yàn)數(shù)據(jù)的疊加分別與D區(qū)的原始校驗(yàn)數(shù)據(jù)、A區(qū)健全數(shù)據(jù)做差,進(jìn)而得到當(dāng)前損壞節(jié)點(diǎn)的A區(qū)數(shù)據(jù),完成當(dāng)前損壞節(jié)點(diǎn)修復(fù)。

本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:

(1)本發(fā)明編碼方法基于分布式存儲(chǔ)系統(tǒng)原先選擇的差錯(cuò)控制編碼技術(shù),沒有額外存儲(chǔ)開銷,并且在節(jié)點(diǎn)修復(fù)過程中能夠保持存儲(chǔ)系統(tǒng)原先的譯碼特性不變,具有很好的使用價(jià)值;

(2)本發(fā)明編碼方法在節(jié)點(diǎn)修復(fù)過程中不需要復(fù)雜的矩陣運(yùn)算,只需要簡單的線性疊加運(yùn)算,復(fù)雜度低,便于實(shí)現(xiàn);

附圖說明

圖1為基于最大距離可分碼的分布式存儲(chǔ)系統(tǒng)示意圖;

圖2為基于最大距離可分碼的分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)修復(fù)示意圖;

圖3為本發(fā)明方法中g(shù)eneralized piggybacking code的實(shí)施流程圖;

圖4為本發(fā)明方法中分布式存儲(chǔ)系統(tǒng)原始編碼模型圖;

圖5為本發(fā)明方法中g(shù)eneralized piggybacking code擴(kuò)展后的原始編碼存儲(chǔ)模型;

圖6為本發(fā)明實(shí)施例中參數(shù)取值確定后對原始信息擴(kuò)展后得到的存儲(chǔ)模型圖;

圖7為本發(fā)明實(shí)施例中用generalized piggybacking code構(gòu)造得到的存儲(chǔ)模型圖。

具體實(shí)施方式

本發(fā)明針對現(xiàn)有技術(shù)的不足,提出一種用于分布式存儲(chǔ)系統(tǒng)節(jié)點(diǎn)數(shù)據(jù)修復(fù)的編碼方法,包括兩部分,部分A為generalized piggybacking code的編碼構(gòu)造過程,部分B為當(dāng)采用generalized piggybacking code的分布式存儲(chǔ)系統(tǒng)的一個(gè)系統(tǒng)節(jié)點(diǎn)損壞后,進(jìn)行節(jié)點(diǎn)修復(fù)的實(shí)施過程,下面是這兩部分的詳細(xì)描述,但不用來限制本發(fā)明的范圍。

如圖3所示為generalized piggybacking code的編碼構(gòu)造流程,包括A1~A5共5個(gè)步驟:

A1將分布式存儲(chǔ)系統(tǒng)抽象成用一列差錯(cuò)控制編碼表示原始存儲(chǔ)模型;

目前分布式存儲(chǔ)系統(tǒng)基本都引入了糾刪碼來提高系統(tǒng)的可靠性,定義糾刪碼參數(shù)為(n,k),其中,n表示碼長對應(yīng)分布式存儲(chǔ)系統(tǒng)中存儲(chǔ)節(jié)點(diǎn)的個(gè)數(shù),k表示信息維度,那么該系統(tǒng)奇偶校驗(yàn)節(jié)點(diǎn)的個(gè)數(shù)r滿足下面關(guān)系式:

r=n-k (1)

本發(fā)明方法以系統(tǒng)型的最大距離可分碼為例來進(jìn)行說明,p1,p2…,pr是r個(gè)編碼向量,用維度為k的向量u=[u1,u2,…,uk]表示分布式存儲(chǔ)系統(tǒng)的原始信息,那么系統(tǒng)的n個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)分別為u1,u2,…,uk,如圖4所示為本發(fā)明方法中分布式存儲(chǔ)系統(tǒng)原始編碼模型圖。

A2擴(kuò)展編碼模型為多列矩陣,并將這些列分成保護(hù)列和設(shè)計(jì)列兩部分。

將圖4所示的編碼模型進(jìn)行列擴(kuò)展,使得每一列都與原來模型采用相同的糾刪編碼方式。首先引入兩個(gè)變量s,p,其中,s表示保護(hù)列的列數(shù),p表示設(shè)計(jì)列的列數(shù),用維度為k的向量u1,u2,…,us+p表示這s+p個(gè)列的原始信息,ui=[ui,1,ui,2,…,ui,k],i∈{1,2,…,s+p},進(jìn)而得到擴(kuò)展后的存儲(chǔ)結(jié)構(gòu),如圖5所示為本發(fā)明方法中擴(kuò)展后的編碼存儲(chǔ)模型。圖5中的每一行的s+p個(gè)數(shù)據(jù)將存儲(chǔ)在同一個(gè)節(jié)點(diǎn)中,將整個(gè)存儲(chǔ)陣列分成了A、B、C、D四個(gè)區(qū)域,本發(fā)明方法接下來的步驟會(huì)設(shè)計(jì)關(guān)于A區(qū)域數(shù)據(jù)的附加信息,并將得到的附加信息添加到D區(qū)域中。

A3根據(jù)generalized piggybacking code的歸一化修復(fù)帶寬函數(shù)γ,確定保護(hù)列的比例pp

a)generalized piggybacking code的歸一化修復(fù)帶寬函數(shù)γ的表達(dá)式為

其中,k,r分別為分布式存儲(chǔ)系統(tǒng)中系統(tǒng)節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)的個(gè)數(shù);s,p分別為保護(hù)列和設(shè)計(jì)列的列數(shù);為ks除以(r-1)p的余數(shù)。

b)定義保護(hù)列的比例為根據(jù)式(2)求出γ的一個(gè)下界

因此γ的下界Γlow(pp)可以表示為

c)求出Γlow(pp)關(guān)于pp的偏導(dǎo)數(shù):

令偏導(dǎo)數(shù)為0,確定Γlow(pp)取正數(shù)的極小值時(shí)pp的值,則當(dāng)時(shí),

A4根據(jù)A3得到的比值,通過仿真最終確定保護(hù)列與設(shè)計(jì)列的值。

在附近,選擇多組盡量小的s和p,使得盡量接近然后將這多組(s,p)的帶入公式(2)中,選擇使歸一化修復(fù)帶寬γ取值最低的那組。其中,本發(fā)明方法中關(guān)于變量s和p確定的一種實(shí)現(xiàn)方式為:

如果不是0.25的倍數(shù),則首先在的上下各選擇兩個(gè)與相離最近的且是0.25倍數(shù)的數(shù),然后將選取得到的四個(gè)數(shù)分別記為d1、d2、d3、d4,把d1、d2、d3、d4表示為最簡分?jǐn)?shù),進(jìn)而得到了關(guān)于變量s、p的4組取值,并分別記為(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4),且滿足d1=s1/(s1+p1)、d2=s2/(s2+p2)、d3=s3/(s3+p3)、d4=s4/(s4+p4),將這四組數(shù)據(jù)分別帶入γ的表達(dá)式中,選擇令γ最小的那組s、p取值,如果有若干組都令γ的值最小,則優(yōu)先選擇s+p的取值最小的那組,如果有若干組s、p的取值,使得s+p都相等且令γ的值都為最小,則選擇任意一組;如果是0.25的倍數(shù),直接將表示為最簡分?jǐn)?shù),則s為最簡分?jǐn)?shù)的分子,p為最簡分?jǐn)?shù)的分母減去分子。

A5設(shè)計(jì)關(guān)于保護(hù)列原始信息的附加信息,并將這些方程添加到設(shè)計(jì)列中去。

本發(fā)明方法根據(jù)步驟A4確定的s和p的值,設(shè)計(jì)(r-1)p個(gè)關(guān)于如圖5所示的A區(qū)中的ks個(gè)數(shù)據(jù)的附加信息,并把它們添加到D區(qū)的(r-1)p個(gè)校驗(yàn)數(shù)據(jù)中去。具體做法為

a)建立一個(gè)大小為的空陣列,然后從A區(qū)中按行一個(gè)一個(gè)的取出數(shù)據(jù),并它們按行填充到空陣列中去。如果ks不能被(r-1)p整除,則空陣列的最后一行不會(huì)被填滿,當(dāng)A區(qū)所有的數(shù)據(jù)都被取出并填充到空陣列之后,把空陣列的所有(r-1)p個(gè)列的值都加起來,所得的(r-1)p個(gè)值就是我們設(shè)計(jì)的附加信息。

按任意順序把所得的(r-1)p個(gè)附加信息與D區(qū)的(r-1)p個(gè)校驗(yàn)數(shù)據(jù)相加就得到了我們所設(shè)計(jì)的generalized piggybacking code,然后依次從D區(qū)取出(r-1)p個(gè)檢驗(yàn)數(shù)據(jù)中的一個(gè),并按任意順序取出(r-1)p個(gè)附加信息中的一個(gè),讓兩個(gè)數(shù)據(jù)相加后再放回到D區(qū)原來檢驗(yàn)數(shù)據(jù)存儲(chǔ)的位置。

當(dāng)采用generalized piggybacking codes進(jìn)行編碼的分布式存儲(chǔ)系統(tǒng)的某一個(gè)系統(tǒng)節(jié)點(diǎn)發(fā)生損壞時(shí),可以用下面方法就行節(jié)點(diǎn)修復(fù),如圖6所示為參數(shù)s、p取值確定后對原始信息擴(kuò)展后得到的存儲(chǔ)模型圖,下面以修復(fù)第l個(gè)系統(tǒng)節(jié)點(diǎn)為例,說明節(jié)點(diǎn)修復(fù)的具體步驟:

B1修復(fù)損壞節(jié)點(diǎn)中位于B區(qū)的數(shù)據(jù)。

該步驟要修復(fù)的數(shù)據(jù)為{ul,s+1,ul,s+2,…,ul,s+p},根據(jù)最大距離可分碼的性質(zhì)——設(shè)計(jì)列中的任意k個(gè)數(shù)據(jù)都可以恢復(fù)出原始信息,本發(fā)明方法從B區(qū)下載所有kp個(gè)健全數(shù)據(jù)剛好可以恢復(fù)出這p個(gè)損壞的數(shù)據(jù)。

B2獲取與A區(qū)中損壞數(shù)據(jù)相關(guān)的附加信息。

A區(qū)中損壞的s個(gè)數(shù)據(jù)為{ul,1,ul,2,…,ul,s},根據(jù)前面所述的附加信息的構(gòu)造過程可知A區(qū)中損壞的s個(gè)數(shù)據(jù)包含在D區(qū)的s個(gè)附加信息中,因此本發(fā)明方法從D區(qū)下載包含這s個(gè)附加信息的存儲(chǔ)數(shù)據(jù)。利用B1中下載并恢復(fù)出的設(shè)計(jì)列的原始數(shù)據(jù)排除s個(gè)存儲(chǔ)數(shù)據(jù)中對原始數(shù)據(jù)的校驗(yàn)部分,進(jìn)而得到了關(guān)于{ul,1,ul,2,…,ul,s}的附加信息。

B3根據(jù)B2獲得的線性附加方程,從A區(qū)中下載部分相關(guān)的健全數(shù)據(jù),然后求出損壞數(shù)據(jù)。

根據(jù)附加信息的設(shè)計(jì)描述,得到從B2中獲得的s個(gè)附加信息中除了有A區(qū)中損壞的還包含一些A區(qū)中健全數(shù)據(jù),下載這些數(shù)據(jù)并從附加信息中減去就獲得了A區(qū)中s個(gè)損壞的數(shù)據(jù),下面結(jié)合實(shí)施例對本發(fā)明方法進(jìn)行進(jìn)一步的說明。

本發(fā)明方法以一個(gè)采用了(16,6)系統(tǒng)型最大距離可分碼的分布式存儲(chǔ)系統(tǒng)為例來說明generalized piggybacking code的構(gòu)造過程,以及當(dāng)一個(gè)系統(tǒng)節(jié)點(diǎn)損壞時(shí)如何修復(fù)該節(jié)點(diǎn)的數(shù)據(jù)的過程。

首先確定分布式存儲(chǔ)系統(tǒng)的編碼模型。碼長n=16,信息維度k=6,所以校驗(yàn)節(jié)點(diǎn)的個(gè)數(shù)r=6,用長度為10的向量u=[u1,u2,…,u10]來表示原始存儲(chǔ)信息,p1,p2,…,p6表示6個(gè)編碼向量,那么在編碼模型中16個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)分別為

擴(kuò)展存儲(chǔ)模型為s個(gè)保護(hù)列,p個(gè)設(shè)計(jì)列。根據(jù)歸一化修復(fù)帶寬的偏導(dǎo)計(jì)算發(fā)現(xiàn)保護(hù)列的比例pp在附近時(shí),系統(tǒng)的修復(fù)效率最高;然后通過計(jì)算對比,確定參數(shù)的取值為s=3,p=2;用長度為10的6個(gè)向量a,b,c,d,e表示這3個(gè)保護(hù)列和2個(gè)設(shè)計(jì)列的原始信息,進(jìn)而得到擴(kuò)展后的存儲(chǔ)模型,如圖6所示為參數(shù)取值確定后對原始信息擴(kuò)展后得到的存儲(chǔ)模型圖。構(gòu)造10個(gè)線性附加方程、1個(gè)3×10空陣列,將A區(qū)中的30個(gè)數(shù)據(jù)按照從第一行到第10行的順序一個(gè)一個(gè)取出,并按行填充到空陣列中,得到

將陣列中10列的數(shù)據(jù)分別疊加,得到10個(gè)線性附加方程F1,F2,…,F10分別為

F1=a1+b4+c7

F2=b1+c4+a8

F3=c1+a5+b8

F4=a2+b5+c8

F5=b2+c5+a9

F6=c2+a6+b9

F7=a3+b6+c9

F8=b3+c6+a10

F9=c3+a7+b10

F10=a4+b7+c10

因此,最后generalized piggybacking code可以構(gòu)造為如圖7所示的存儲(chǔ)模型,假如第3個(gè)系統(tǒng)節(jié)點(diǎn)損毀了,即丟失了a3,b3,c3,d3,e3,修復(fù)過程包括:首先從B區(qū)中下載d1,d2,d4,…,d10,e1,e2,e4,…,e10,pTe,求解出d3,e3;然后從D區(qū)下載與a3,b3,c3相關(guān)的數(shù)據(jù)根據(jù)獲得的d,e分別求出得到F7,F8,F9,從A區(qū)中下載健全數(shù)據(jù)b6,c6,a7,c9,a10,b10,并將它們減去,就得到了a3,b3,c3,完成節(jié)點(diǎn)修復(fù)。

本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。

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