Generalizing RDP Codes Using the Combinatorial Method

#摘要
本文提出了PDHLatin,它是一种基于列汉密尔顿拉丁方(CHIS-column hamiltonian Latin squares)构造的校验块独立的2容错水平码。通过证明它是MDS码。 本文也提出了一种新的基于CHIS的校验块独立的2容错混合编码-PIMLatin。 这两种编码具有良好的扩展性以及结构多样性。 同时本文也讨论编码缩减技术,以及它所带来的参数扩展性,结构可变性和可靠性的提升。 基于垂直缩减的思想,本文利用非汉密尔顿拉丁方的方式提出了一种2容错阵列码的构建方式。

#简介
磁盘容量的增大,以及存储系统规模的增大导致多故障频发。 因此,多容错纠删码变得流行起来,但是当前的多容错纠删码具有一些内在的局限性。Plank在Fast05上tutorial对存储系统的纠删码给出了一个详细的介绍。纠删码是一种编码容错机制。 它将 n n n个数据磁盘编码成 m m m个校验磁盘,并且可以容错任意的 t t t个磁盘的故障,但是并没有一种针对 n n n, m m m, t t t> 1 1 1情况下的一致公认的最优编码技术。

广为人知的多容错编码技术主要分为三种类别: Reed-Solomon码, 二进制线性码和阵列码。

  1. RS码是仅有的一种适用于任意 n n n, m m m(= t t t)MDS码。 这意味着最优的存储效率以及更新效率。 但是由于它使用Galois Field进行编解码运算(虽然一些优化的方法提出来),计算复杂性是一个很严重的问题。
  2. 二进制线性码是基于XOR的编码,具有较优的计算复杂性,但是存储效率比较低。 图1展示了一种2维线性码,其中数据单元 D i j D_{ij} Dij同时参与了两个校验块 P i P_i Pi Q i Q_i Qi的计算。 这个例子说明了线性码的核心观点: 将数据单元分配到多个校验组中,也就是说一个数据单元参与到多个组,保证了多容错特性。
  3. 阵列码将数据或者校验单元组织到一个array中。 EVENODD是第一种MDS阵列码,其他随后的一些阵列码像X-COde, RDP, STAR-code等都与它有思想上相似的地方。

#图论知识
又找了一篇相关的论文:Combinatorial Constructions of Multi-Erasure-Correcting Codes with
Independent Parity Symbols for Storage Systems 依然卡在了P1F以及拉丁方上,因此着眼于这些知识的理论搭建。

##P1F相关
所谓一个图G的因子Gi,是指至少包含G的一条边的生成子图。
所谓一个图G的因子分解,是指把图G分解为若干个边不重的因子之并。
所谓一个图G的n因子,是指图G的n度正则因子。
生成子图: 与图G的顶点相同,边是子集。
正则图: 图的所有顶点的度都相同,例如孤立的一群点是0-度正则图
n度正则因子: 首先得满足因子 G i G_i Gi,然后满足正则的概念。
图片名称
例如这个五边形内部的红色五角形就是图的一个2因子。

匹配: 图的一个匹配是图的一些边的集合,这些边没有公共的顶点。
最大匹配: 首先是图的一个匹配,然后边的数目最多
完美匹配: 是图的一个匹配,且能囊括所有的顶点。
例如,下图就是一个完美匹配
这里写图片描述

图的一因子分解:图可以分解为若干个边不重复的完美匹配的导出子图。
例如具有 2 n 2n 2n个顶点的完全图 K 2 n K_{2n} K2n可进行一因子分解, K 4 K_4 K4可分解为3个1因子。
图片名称

完美1因子分解: 如果一个图可以进行一因子分解,且对于任意的两个因子 F i F_i Fi F j F_j Fj,有 F i U F j F_i U F_j FiUFj产生了汉密尔顿回路,那么这种1因子分解就是完美1因子分解,简写为P1F。
汉密尔顿回路: n n n个顶点, n n n条边组成了一个环路,这样的环路只要删除其中任意一条边就不会再有回路,这种环路叫做汉密尔顿回路。 通过图G的每个结点一次,且仅一次的通路(回路)。
具有偶数个节点的完全图都有P1F。

##拉丁方相关
对于 k ≤ n k \leq n kn,一个 k ∗ n k*n kn的拉丁矩阵是1个 k ∗ n k*n kn的矩阵,而且矩阵的每一行和每一列都没有重复的元素。 通常我们使用 Z n = 0 , 1 , ⋯   , n − 1 Z_n = {0, 1, \cdots, n-1} Zn=0,1,,n1作为元素集合,用 L ( k , n ) L(k,n) L(k,n)叫做 k ∗ n k*n kn的拉丁矩阵, L ( k , n ) L(k,n) L(k,n)中的第 r r r行,第 c c c列的元素是 R r c R_{rc} Rrc。 我们称 L ( n , n ) L(n,n) L(n,n)叫做拉丁方阵,且可以使用具有 n 2 n^2 n2个条目的 3 3 3元组 ( r o w , c o l u m n , s y m b o l ) (row, column, symbol) (row,column,symbol)来表示它。

拉丁矩阵 R R R的每一行都是上述 Z n Z_n Zn的一个排列。如果拉丁方 L L L的两行组成一个单一的环,那么 L L L叫做行汉密尔顿拉丁方,本文关注列汉密尔顿拉丁方(CHIS),也就是两列组成一个环,如下图的 C 5 C_5 C5
这里写图片描述

###CHIS和P1F的相互转换
CHIS和P1F具有紧密的联系。n阶CHIS可以转换为一个P1F(V, W, E),过程如下:使顶点 V = { v i ∣ 0 ≤ i ≤ n − 1 } V =\{ v_i | 0\leq i \leq n-1\} V={vi0in1},使顶点 W = { w i ∣ 0 ≤ i ≤ n − 1 } W =\{ w_i | 0\leq i \leq n-1\} W={wi0in1},对于所有的 ( i , j , k ) ∈ L (i,j,k) \in L (i,j,k)L, 使边$(v_i, w_k) \in F_j $, 同样这个过程也可以反向进行。

如下图的例子,P1F和CHIS一一对应:
这里写图片描述
这里写图片描述
转换过程
首先由 K 5 , 5 K_{5,5} K5,5生成一个完美1因子匹配(即每一个子图的顶点的度都是1),每一对因子 F i F_i Fi, F j F_j Fj都可以形成汉密尔顿环路。 下面的是一个5阶列汉密尔顿拉丁方。 这两个图可以相互转换( C 5 和 K 5 , 5 C_5 和 K_{5,5} C5K5,5)。
将P1F中的 F j F_j Fj对应于 C 5 C_5 C5的第j列;将 C 5 C_5 C5 j j j列的元素的行号 i i i作为 F j F_j Fj中V顶点的下标, 即 v i v_i vi; 将 C 5 C_5 C5 j j j列的元素的值 k k k作为 F j F_j Fj中W顶点的下标, 即 w k w_k wk。 举例说明: j=1,对应于 K 5 , 5 K_{5,5} K5,5 F 1 F_1 F1 C 5 C_5 C5的第1列,即 1 , 2 , 3 , 4 , 0 1,2,3,4,0 1,2,3,4,0; 在 C 5 C_5 C5中,当 i = 0 i=0 i=0时, k = 1 k=1 k=1(第 0 0 0行,第 1 1 1列的元素值为 1 1 1),因此在 F 1 F_1 F1 v 0 v_0 v0 w 1 w_1 w1相连, 同样当 i = 1 i=1 i=1时, k = 2 k=2 k=2(第 1 1 1行,第 1 1 1列的元素值为 2 2 2),因此 F 1 F_1 F1 v 1 v_1 v1 w 2 w_2 w2相连。

对于 C 5 C_5 C5中的第1,3列形成环路,其实就是说对于 K 5 , 5 K_{5,5} K5,5中的P1F, F 1 F_1 F1 F 3 F_3 F3形成了环路,这两个是等价的。

如果 K n + 1 K_{n+1} Kn+1具有P1F, K n , n K_{n,n} Kn,n也具有,由于已知偶数节点的完全图具有完美1因子,因此当n为奇数(n=2也可以)时, K n , n K_{n,n} Kn,n 具有P1F。

#新的编码
#PDHLatin codes

#未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值