Generalizing RDP Codes Using the Combinatorial Method

摘要

本文提出了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 with
Independent Parity Symbols for Storage Systems 依然卡在了P1F以及拉丁方上,因此着眼于这些知识的理论搭建。

P1F相关

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

匹配: 图的一个匹配是图的一些边的集合,这些边没有公共的顶点。
最大匹配: 首先是图的一个匹配,然后边的数目最多
完美匹配: 是图的一个匹配,且能囊括所有的顶点。
例如,下图就是一个完美匹配
Generalizing RDP Codes Using the Combinatorial Method_第2张图片

图的一因子分解:图可以分解为若干个边不重复的完美匹配的导出子图。
例如具有 2n 个顶点的完全图 K2n 可进行一因子分解, K4 可分解为3个1因子。
Generalizing RDP Codes Using the Combinatorial Method_第3张图片

完美1因子分解: 如果一个图可以进行一因子分解,且对于任意的两个因子 Fi Fj ,有 FiUFj 产生了汉密尔顿回路,那么这种1因子分解就是完美1因子分解。

未完待续

你可能感兴趣的:(编码)