Generalizing RDP Codes Using the Combinatorial Method
2016-05-06 17:32
423 查看
摘要
本文提出了PDHLatin,它是一种基于列汉密尔顿拉丁方(CHIS-column hamiltonian Latin squares)构造的校验块独立的2容错水平码。通过证明它是MDS码。 本文也提出了一种新的基于CHIS的校验块独立的2容错混合编码-PIMLatin。 这两种编码具有良好的扩展性以及结构多样性。 同时本文也讨论编码缩减技术,以及它所带来的参数扩展性,结构可变性和可靠性的提升。 基于垂直缩减的思想,本文利用非汉密尔顿拉丁方的方式提出了一种2容错阵列码的构建方式。简介
磁盘容量的增大,以及存储系统规模的增大导致多故障频发。 因此,多容错纠删码变得流行起来,但是当前的多容错纠删码具有一些内在的局限性。Plank在Fast05上tutorial对存储系统的纠删码给出了一个详细的介绍。纠删码是一种编码容错机制。 它将n个数据磁盘编码成m个校验磁盘,并且可以容错任意的t个磁盘的故障,但是并没有一种针对n, m,t>1情况下的一致公认的最优编码技术。广为人知的多容错编码技术主要分为三种类别: Reed-Solomon码, 二进制线性码和阵列码。
1. RS码是仅有的一种适用于任意n, m(=t)MDS码。 这意味着最优的存储效率以及更新效率。 但是由于它使用Galois Field进行编解码运算(虽然一些优化的方法提出来),计算复杂性是一个很严重的问题。
2. 二进制线性码是基于XOR的编码,具有较优的计算复杂性,但是存储效率比较低。 图1展示了一种2维线性码,其中数据单元Dij同时参与了两个校验块Pi和Qi的计算。 这个例子说明了线性码的核心观点: 将数据单元分配到多个校验组中,也就是说一个数据单元参与到多个组,保证了多容错特性。
3. 阵列码将数据或者校验单元组织到一个array中。 EVENODD是第一种MDS阵列码,其他随后的一些阵列码像X-COde, RDP, STAR-code等都与它有思想上相似的地方。
图论知识
又找了一篇相关的论文:Combinatorial Constructions of Multi-Erasure-Correcting Codes withIndependent Parity Symbols for Storage Systems 依然卡在了P1F以及拉丁方上,因此着眼于这些知识的理论搭建。
P1F相关
所谓一个图G的因子Gi,是指至少包含G的一条边的生成子图。所谓一个图G的因子分解,是指把图G分解为若干个边不重的因子之并。
所谓一个图G的n因子,是指图G的n度正则因子。
生成子图: 与图G的顶点相同,边是子集。
正则图: 图的所有顶点的度都相同,例如孤立的一群点是0-度正则图
n度正则因子: 首先得满足因子Gi,然后满足正则的概念。
例如这个五边形内部的红色五角形就是图的一个2因子。
匹配: 图的一个匹配是图的一些边的集合,这些边没有公共的顶点。
最大匹配: 首先是图的一个匹配,然后边的数目最多
完美匹配: 是图的一个匹配,且能囊括所有的顶点。
例如,下图就是一个完美匹配
图的一因子分解:图可以分解为若干个边不重复的完美匹配的导出子图。
例如具有2n个顶点的完全图K2n可进行一因子分解,K4可分解为3个1因子。
完美1因子分解: 如果一个图可以进行一因子分解,且对于任意的两个因子Fi和Fj,有FiUFj产生了汉密尔顿回路,那么这种1因子分解就是完美1因子分解,简写为P1F。
汉密尔顿回路: n个顶点,n条边组成了一个环路,这样的环路只要删除其中任意一条边就不会再有回路,这种环路叫做汉密尔顿回路。 通过图G的每个结点一次,且仅一次的通路(回路)。
具有偶数个节点的完全图都有P1F。
拉丁方相关
对于k≤n,一个k∗n的拉丁矩阵是1个k∗n的矩阵,而且矩阵的每一行和每一列都没有重复的元素。 通常我们使用Zn=0,1,⋯,n−1作为元素集合,用L(k,n)叫做k∗n的拉丁矩阵,L(k,n)中的第r行,第c列的元素是Rrc。 我们称L(n,n)叫做拉丁方阵,且可以使用具有n2个条目的3元组(row,column,symbol)来表示它。拉丁矩阵R的每一行都是上述Zn的一个排列。如果拉丁方L的两行组成一个单一的环,那么L叫做行汉密尔顿拉丁方,本文关注列汉密尔顿拉丁方(CHIS),也就是两列组成一个环,如下图的C5。
CHIS和P1F的相互转换
CHIS和P1F具有紧密的联系。n阶CHIS可以转换为一个P1F(V, W, E),过程如下:使顶点V={vi|0≤i≤n−1},使顶点W={wi|0≤i≤n−1},对于所有的(i,j,k)∈L, 使边(vi,wk)∈Fj, 同样这个过程也可以反向进行。如下图的例子,P1F和CHIS一一对应:
转换过程
首先由K5,5生成一个完美1因子匹配(即每一个子图的顶点的度都是1),每一对因子Fi, Fj都可以形成汉密尔顿环路。 下面的是一个5阶列汉密尔顿拉丁方。 这两个图可以相互转换(C5和K5,5)。
将P1F中的Fj对应于C5的第j列;将C5第j列的元素的行号i作为Fj中V顶点的下标, 即vi; 将C5第j列的元素的值k作为Fj中W顶点的下标, 即wk。 举例说明: j=1,对应于K5,5的F1和C5的第1列,即1,2,3,4,0; 在C5中,当i=0时,k=1(第0行,第1列的元素值为1),因此在F1中v0与w1相连, 同样当i=1时,k=2(第1行,第1列的元素值为2),因此F1中v1与w2相连。
对于C5中的第1,3列形成环路,其实就是说对于K5,5中的P1F, F1和F3形成了环路,这两个是等价的。
如果Kn+1具有P1F,Kn,n也具有,由于已知偶数节点的完全图具有完美1因子,因此当n为奇数(n=2也可以)时,Kn,n 具有P1F。
新的编码
PDHLatin codes
未完待续
相关文章推荐
- Spring的AOP
- java-加法器代码
- Spring注解
- 类中静态成员与友元
- JavaScript(一)
- 安装前判断进程中是否有程序在运行
- ViewPagerindicator 源码解析
- vs上提示找不到msxml4.dll的解决办法
- Linux系统时间同步
- linux中的crontab定时任务
- listview使用SimpleAdapter显示图片和文字
- Struts 2验证框架出错:403 for URL:http:////www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd
- 使用 Nginx 提升网站访问速度
- Exception in thread "main" org.hibernate.AnnotationException: List/array has to be annotated with an
- 封装的HttpClient工具类
- jquery实现跳转到页面指定位置
- web服务器
- 构建之法阅读笔记05
- 记录一次使用DDNS通过域名访问服务器的过程
- 【偶遇的知识点】DOMContentLoaded