本發(fā)明屬于數(shù)據(jù)編碼存儲領(lǐng)域,尤其涉及一種局部性不相等碼的構(gòu)造方法。
背景技術(shù):
近幾年,隨著便攜式互聯(lián)網(wǎng)設(shè)備與移動互聯(lián)網(wǎng)的快速發(fā)展,人們對存儲的需求日益增長。分布式存儲作為海量存儲的主要解決方案正悄然興起,它將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備中。為了節(jié)約成本,節(jié)點通常采用普通的交換設(shè)備和廉價的服務(wù)器,因此在替換節(jié)點、硬件出現(xiàn)故障、軟件需要升級的情況下,存儲系統(tǒng)中的節(jié)點非常容易失效,從而造成存儲節(jié)點中數(shù)據(jù)的丟失。為保證數(shù)據(jù)可靠性,系統(tǒng)會頻繁的進行節(jié)點修復(fù),因此,如何有效地進行節(jié)點修復(fù)就成為了亟待解決的問題。現(xiàn)下,修復(fù)節(jié)點采用的系列方案如復(fù)制策略、再生碼、糾刪碼等,會造成存儲空間的浪費,占用大量的修復(fù)帶寬,需要較大的修復(fù)局部性(即在數(shù)據(jù)節(jié)點修復(fù)過程中需要連接的其他節(jié)點數(shù)量多)。
局部修復(fù)碼LRCs是指將一個碼的所有信息符號分成多個分組,且每個分組分別產(chǎn)生一個奇偶校驗位。當(dāng)某個分組中的一個信息符號丟失或損壞時,只需要利用本組中的其他信息符號和本組的奇偶校驗位就可以恢復(fù)出這個丟失或損壞的數(shù)據(jù),而不需要通過所有的編碼符號來恢復(fù)。由此可見,局部修復(fù)碼LRCs可以減小修復(fù)局部性,從而減少修復(fù)過程中的I/O操作,同時可以保持一個較低的修復(fù)帶寬。
對于一個局部修復(fù)碼LRCs而言,它的最小距離d越大,數(shù)據(jù)節(jié)點修復(fù)過程中需要連接的節(jié)點數(shù)就越少,所需修復(fù)帶寬也就越小。而在現(xiàn)有的局部修復(fù)碼構(gòu)造方法中,很少能夠使局部修復(fù)碼的最小距離達到上界。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有的局部修復(fù)碼LRCs構(gòu)造方法修復(fù)局部性較大的不足,提出了新的局部性不相等碼的構(gòu)造方法?;诰植啃迯?fù)碼信息符號局部性不相等和全符號局部性不相等兩種情況,構(gòu)造出新的局部性不相等碼。
使得局部性不相等碼的修復(fù)局部性最小,本發(fā)明所述技術(shù)方案:
一種局部性不相等碼的構(gòu)造方法,包括兩種優(yōu)選實施方式:
第一優(yōu)選實施方式:其特征信息符號局部性不相等,構(gòu)造信息符號局部性不相等碼,對最大距離可分MDS碼的奇偶校驗位矩陣進行分離,對分離所得的任意一個子集進一步分離,得到編碼符號長度n的信息符號局部性不相等碼生成矩陣,該矩陣生成的碼字即為最小距離d達到上界的信息符號局部性不相等碼;
第二優(yōu)選實施方式:其特征全符號局部性不相等,包括信息符號和奇偶校驗符號,采用Gabidulin碼進行編碼,再將編碼結(jié)果利用最大距離可分MDS碼再一次進行編碼,得到達到最小距離上界的(n,k,d)全符號局部性不相等碼,碼字長度n,該矩陣生成的碼字即為最小距離d達到上界的信息符號局部性不相等碼。
進一步根據(jù)所述局部性不相等碼的構(gòu)造方法,包括:
Fq表示q元域;
中F表示域,qm表示q元的m次擴展,其中域內(nèi)多項式的最高次數(shù)為k-1;
一個長度為n的編碼中含有k個信息符號,其中某個符號i可以通過碼中的其他ri個符號恢復(fù)出來,那么i的局部性為ri,若一個碼所包含的k個信息符號中的每個信息符號的局部性最大為r,則所述碼的局部性為r;
系統(tǒng)碼n表示編碼長度,k表示信息符號長度,d表示最小距離,若信息符號可以被分為不相交的子集,不同子集的信息符號具有不同的局部性,即碼為信息符號局部性不相等碼。
所述系統(tǒng)碼其信息符號局部性輪廓為kj為局部性為j(1≤j≤r)的信息符號的個數(shù);
所述全符號局部性不相等碼是信息符號局部性不相等碼的進一步擴展,編碼符號,包括信息符號和奇偶校驗符號,可以被分為不相交的子集,不同子集的編碼符號具有不同的局部性,表示奇偶校驗符號也具有局部性約束的碼;
所述系統(tǒng)碼若奇偶校驗符號也具有局部性約束時,類似于信息符號局部性輪廓,定義全符號局部性輪廓,ri表示碼中第i個符號的局部性,1≤i≤n,令ra=max(r1,r2,…,rn),那么它的全符號局部性輪廓表示為nj是局部性為j(1≤j≤ra)的信息符號的數(shù)量;
若Xn為有限域GF(q)上的n維向量空間,q為素數(shù)或素數(shù)冪,Xn中的元素向量x在GF(q)上的秩為R(x),Xn的兩個元素x、y之間的秩距離dR(X,Y)定義為dR(x,y)=R(x-y);碼c的所有不同兩個碼字的秩距離的最小值為碼c的最小秩距離,記作dR(c);碼長為N,信息符號數(shù)為K,最小秩距離為D的線性碼稱作秩距離(N,K,D)碼;
所述上的一個Gabidulin碼記為(N,K,N-K+1)碼,其中N為編碼符號個數(shù),K為信息符號個數(shù),N-K+1為碼字最小距離。為其中的一個碼字,定義為f(x)是m*q階有限域內(nèi)的一個系數(shù)為信息符號的線性多項式,即有限域內(nèi)的元素個數(shù)為m*q,g1,…,gN是上的特定的點;
所述Gabidulin碼屬于秩距離碼;
若(N,N-Y,Y+1)碼,碼長為N,冗余度為Y,最小距離為Y+1的線性碼,為最大距離可分MDS碼;所述最大距離可分MDS碼,若N-Y個信息符號位經(jīng)過編碼之后擴展為N個信息符號位,當(dāng)N-Y個信息符號位中的任一符號位丟失或損壞時,利用現(xiàn)有的N-1個符號位中的K個符號位即可恢復(fù)出丟失或損壞的信息符號位;
若先采用Gabidulin碼進行編碼,再采用最大距離可分MDS碼進行編碼,最后得到的編碼結(jié)果就可以達到Singleton上界,即達到了碼字最小距離的上界;
所述Singleton上界為碼字的一個度量,是當(dāng)碼字長度及最小距離給定時碼字個數(shù)的一個上界;Aq(n,d)為q元碼碼字個數(shù)可能達到的最大值,即Aq(n,d)≤qn-d+1,其中q表示碼字是一個q元碼;若一個碼字達到Singleton上界時,所述碼字的最小距離可達到最大值;若域上的(N,K,D)秩距離碼其編碼符號個數(shù)為N,信息符號個數(shù)為K,最小秩距離為D,其Singleton上界可以轉(zhuǎn)化為與碼字最小距離相關(guān)的表示,即:
進一步根據(jù)所述局部性不相等碼的構(gòu)造方法,第一優(yōu)選實施方式中信息符號局部性不相等時;
碼其中k+d-1表示編碼長度,d-1表示奇偶校驗位長度,d表示最小距離,若奇偶檢驗位長度僅比最小距離少一位,滿足最大距離可分MDS碼的構(gòu)造條件,最大距離可分MDS的生成矩陣是由單位矩陣與奇偶校驗位矩陣構(gòu)造而成,其中單位矩陣的列數(shù)與碼的信息符號長度相同;
碼的生成矩陣可以表示為其中是k*k的單位矩陣的第j列向量,是k*(d-1)的奇偶校驗位矩陣中的第j列向量,即:
每一個信息符號的局部性對G′中的劃分子集,記jp代表坐標(biāo)點在奇偶校驗位矩陣第j列中局部性為p(l≤p≤m,m≤r),將中所有局部性為p的坐標(biāo)放到同一個子集sp,則被分為m個不相交的子集s1,…,sm,|sp|表示集合sp中元素的個數(shù),表示jp的個數(shù);
將sp任意劃分為個不相交的子集,每個子集的大小不能超過局部性p,即
為k維的向量,集合S包含于這個k維的向量,表示集合S中的元素取自中的任意|S|行;
最終得到的碼字生成矩陣為G:
所述分解向量僅以此為例,但不局限于此例;
若原始信息碼字為得到編碼碼字為得到的碼字長度n:
最小距離d的上界:
則構(gòu)造出最小距離d達到上界的信息符號局部性不相等碼。
進一步根據(jù)所述局部性不相等碼的構(gòu)造方法,第二優(yōu)選實施方式中全符號局部性不相等時,包括信息符號和奇偶校驗符號;
向量屬于域,長度為k,的全符號局部性輪廓為即局部性為j的符號個數(shù)有nj個,1≤j≤ra;求得每個局部性j所對應(yīng)的nj,由式進一步求得N,即得到Gabidulin碼的碼字長度N;
根據(jù)碼字長度N,信息符號長度k以及最小距離N-k+1對進行Gabidulin編碼,得到碼字
碼字中的符號根據(jù)每個符號的局部性劃分成ra個不相交組即每個組中的元素局部性為j,每一個組中符號個數(shù)為Nj;
若Nj=0,則組則不再劃分此類組;
若Nj>0,即組則進一步將Nj對應(yīng)的組中的符號任意劃分成Nj/j個不相交的局部性分組,每組中的符號數(shù)為j,則
對于每一個包含j個符號的局部性分組利用Fq上的(j+1,j,2)最大距離可分MDS碼再次進行編碼,使每個分組的符號個數(shù)由j變?yōu)閖+1;
得到達到最小距離上界的(n,k,d)全符號局部性不相等碼,碼字長度n:
最小距離d的上界:
則構(gòu)造出最小距離d達到上界的全符號局部性不相等碼。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點:
(1)本發(fā)明采用的局部性不相等碼構(gòu)造方法,使碼字的修復(fù)局部性達到一個最小值,從而減少I\O操作,減少修復(fù)帶寬。
(2)由于局部性不相等碼對不相等的局部性進行了劃分,形成一個局部性輪廓,給定對碼字多次劃分子集的依據(jù),使得最小距離d達到上界。
附圖說明
圖1為局部性不相等碼的兩種優(yōu)選方式。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,首先對本發(fā)明所述方法涉及的一些定義及參數(shù),進行如下解釋:
Fq:表示q元域。
F表示域,qm表示q元的m次擴展,其中域內(nèi)多項式的最高次數(shù)為k-1。
局部性:設(shè)一個長度為n的編碼中含有k個信息符號,其中某個符號i可以通過碼中的其他ri個符號恢復(fù)出來,那么i的局部性為ri。如果一個碼所包含的k個信息符號中的每個信息符號的局部性最大為r,說時此碼的局部性為r。
信息符號局部性不相等碼:對于一個系統(tǒng)碼n表示編碼長度,k表示信息符號長度,d表示最小距離。如果信息符號可以被分為不相交的子集,不同子集的信息符號具有不同的局部性,稱這種碼為信息符號局部性不相等碼。
信息符號局部性輪廓:對于一個系統(tǒng)碼它的信息符號局部性輪廓表示為kj表示局部性為j(1≤j≤r)的信息符號的個數(shù)。
全符號局部性不相等碼:全符號局部性不相等碼是信息符號局部性不相等碼的進一步擴展,用來表示奇偶校驗符號也具有局部性約束的碼。對于一個系統(tǒng)碼,如果它的編碼符號(包括信息符號和奇偶校驗符號)可以被分為不相交的子集,不同子集的編碼符號具有不同的局部性,稱這種碼為全符號局部性不相等碼。
全符號局部性輪廓:當(dāng)奇偶校驗符號也具有局部性約束時,類似于信息符號局部性輪廓,可以定義一個全符號局部性輪廓。首先對于一個系統(tǒng)碼ri表示碼中第i個符號的局部性,1≤i≤n,然后令ra=max(r1,r2,…,rn),那么它的全符號局部性輪廓表示為nj是局部性為j(1≤j≤ra)的信息符號的數(shù)量。
秩距離:令Xn表示有限域GF(q)上的n維向量空間,這里q為素數(shù)或素數(shù)冪。Xn中的元素向量x在GF(q)上的秩為R(x)。Xn的兩個元素x、y之間的秩距離dR(X,Y)定義為dR(x,y)=R(x-y)。碼c的所有不同兩個碼字的秩距離的最小值為碼c的最小秩距離,記作dR(c)。碼長為N,信息符號數(shù)為K,最小秩距離為D的線性碼稱作秩距離(N,K,D)碼。
Gabidulin碼:上的一個Gabidulin碼記為(N,K,N-K+1)碼,其中N為編碼符號個數(shù),K為信息符號個數(shù),N-K+1為碼字最小距離。為其中的一個碼字,定義為f(x)是m*q階有限域(即有限域內(nèi)的元素個數(shù)為m*q)內(nèi)的一個系數(shù)為信息符號的線性多項式,g1,…,gN是上的特定的點。Gabidulin碼屬于秩距離碼。
MDS碼:一個形如(N,N-Y,Y+1)碼稱為最大距離可分MDS碼,它是碼長為N,冗余度為Y,最小距離為Y+1的線性碼。其具有這樣的屬性:若N-Y個信息符號位經(jīng)過編碼之后擴展為N個信息符號位,當(dāng)N-Y個信息符號位中的任一符號位丟失或損壞時,只需利用現(xiàn)有的N-1個符號位中的K個符號位即可恢復(fù)出丟失或損壞的信息符號位。
如果先采用Gabidulin碼進行編碼,再采用最大距離可分MDS碼進行編碼,最后得到的編碼結(jié)果就可以達到Singleton上界,也就達到了碼字最小距離的上界。
Singleton上界:Singleton上界是碼字的一個度量,它是當(dāng)碼字長度及最小距離給定時碼字個數(shù)的一個上界。Singleton上界給出了碼字的長度和最小距離之間的關(guān)系,Aq(n,d)表示q元碼碼字個數(shù)可能達到的最大值,即Aq(n,d)≤qn-d+1,其中q表示碼字是一個q元碼。當(dāng)一個碼達到Singleton上界時,這個碼字的最小距離可達到最大值。一個域上的(N,K,D)秩距離碼其編碼符號個數(shù)為N,信息符號個數(shù)為K,最小秩距離為D。此類碼,其Singleton上界可以轉(zhuǎn)化為與碼字最小距離相關(guān)的表示,即
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖具體描述本發(fā)明所述的局部性不相等碼的構(gòu)造方法,如圖1所示,本發(fā)明所述方法優(yōu)選的包括第一優(yōu)選實施方式和第二優(yōu)選實施方式。
第一優(yōu)選實施方式:
第一優(yōu)選實施方式適用于信息符號局部性不相等的情況,為了構(gòu)造出信息符號局部性不相等碼,首先對最大距離可分MDS碼的奇偶校驗位矩陣進行分離,然后對分離所得的任意一個子集進一步分離,進而得到編碼符號長度為的信息符號局部性不相等碼生成矩陣,該矩陣生成的碼字即為最小距離d達到上界的信息符號局部性不相等碼。
給定一個碼其中k+d-1表示編碼長度,d-1表示奇偶校驗位長度,d表示最小距離,當(dāng)奇偶檢驗位長度僅比最小距離少一位時,滿足最大距離可分MDS碼的構(gòu)造條件,最大距離可分MDS的生成矩陣是由單位矩陣與奇偶校驗位矩陣構(gòu)造而成,其中單位矩陣的列數(shù)與碼的信息符號長度相同,所以碼的生成矩陣可以表示為其中是k*k的單位矩陣的第j列向量,是k*(d-1)的奇偶校驗位矩陣中的第j列向量。即
根據(jù)每一個信息符號的局部性對G′中的劃分子集,記jp代表坐標(biāo)點在奇偶校驗位矩陣第j列中局部性為p(1≤p≤m,m≤r)。具體地,將中所有局部性為p的坐標(biāo)放到同一個子集sp,則|sp|表示集合sp中元素的個數(shù),表示jp的個數(shù)。被分為m個不相交的子集s1,…,sm。
將sp任意劃分為個不相交的子集,每個子集的大小不能超過局部性p,即在這里,定義在一個k維的向量中,集合S包含于這個k維的向量,表示集合S中的元素取自中的任意|S|行。以分解向量為例,僅以此為例,但不局限于此例,最終得到的碼字生成矩陣為G:
如果原始信息碼字為那么得到編碼碼字為得到的碼字長度n:
最小距離d的上界為:
則構(gòu)造出最小距離d達到上界的信息符號局部性不相等碼。
第二優(yōu)選實施方式:
第二優(yōu)選實施方式適用于全符號局部性不相等的情況,包括信息符號和奇偶校驗符號,先采用Gabidulin碼進行編碼,然后將編碼結(jié)果利用最大距離可分MDS碼再一次進行編碼。
選取一個屬于域的向量長度為k,的全符號局部性輪廓為即局部性為j的符號個數(shù)有nj個,1≤j≤ra。令從而求得每個局部性j所對應(yīng)的nj,再由式進一步求得N,即得到Gabidulin碼的碼字長度N。然后依據(jù)碼字長度N,信息符號長度k以及最小距離N-k+1對進行Gabidulin編碼,得到碼字
將碼字中的符號根據(jù)每個符號的局部性劃分成ra個不相交組即每個組中的元素局部性為j,每一個組中符號個數(shù)為Nj。若Nj=0,則組則不再劃分此類組;若Nj>0,即組則進一步將Nj對應(yīng)的組中的符號任意劃分成Nj/j個不相交的局部性分組,每組中的符號數(shù)為j,則
對于每一個包含j個符號的局部性分組利用Eq上的(j+1,j,2)最大距離可分MDS碼再次進行編碼,使每個分組的符號個數(shù)由j變?yōu)閖+1。由此得到達到最小距離上界的(n,k,d)全符號局部性不相等碼,碼字長度:
最小距離d的上界:
則構(gòu)造出最小距離d達到上界的全符號局部性不相等碼。
上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,并非對實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其他不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉,而由此所引申出的顯而易見的變化或變動仍處于本發(fā)明的保護范圍之中。