GF-Complete 是一个开源、综合性的伽罗瓦运算库,相应的文章发表在FAST13 中(见参考文献【1】)。作者是大名鼎鼎的Jim Plank 教授,作为开源纠错码库Jerasure 的开发者,在这个伽罗瓦运算库中创新地采用了SSE 指令集来加速纠错码运算的瓶颈—伽罗瓦运算中的乘法运算,并采用了其他运算方法,综合得到GF-Complete。该库可在Plank 主页中下载得到,下面就GF-Complete 库做简要分析,详细可参考文档【2】。
分类目录归档:存储系统
阿里云存储服务OSS API(python)
本文将从阿里云存储中基本概念,python API 和几个例子来简述阿里云python API 的使用,使新手能够简单上手阿里云的云存储。
纠删码和副本策略的定量比较
再生码开销的定量计算
上篇论文讨论了再生码的来源:从OMMDS 改进而来,从理论上证明了再生码的可行性与存储开销,维持带宽。下面这篇文章:A practical study of regenerating codes for peer-to-peer backup systems 则详细讨论了再生码的存储开销、恢复带宽开销、计算开销等等。
冗余编码的存储系统中最多允许多少节点失效?
本文讨论分布式存储系统如果采用编码方式保存数据,那么允许最多失效的节点个数与码率之间的关系。这个关系也可以通过图论中“最小分割最大流”定理来求证。
一个原始文件S(假设没有冗余信息)大小自信息量/文件大小为I ,进行冗余编码[n’,k](这里考虑系统码,为和分不到n 个节点区分开,用n’ 代替)的编码率为R = k/n’ ,则编码后文件大小为C:I → C = I/R。将编码后的数据分布在n 个节点上,每个节点的数据记做:X1 ,X2 ,X3 ……Xn ,每个节点数据的大小为C/n = I/R·n 。而每个节点数据/信息又有两部分组成,前一部分是系统码中的原始信息:Xii = I/n,另一部分是系统码中的校验信息:Xih = C/n – I/n ,且Xi = Xii + Xih。如下图所示
当a 个节点发生故障失效时,那么剩下的校验/冗余信息和原始信息应该能够恢复出丢失的原始信息,进而恢复出所有的校验信息。即:
因为H = C – I =I/R – I。得结果:
这也就是说,所有没有损坏节点的个数与所有节点比率(n-a/n)应该大于编码码率R。
再生码 Regenerating Code
再生码(RC Regenerating Code)是07 年Infocomm 会议中Network Coding for Distributed Storage Systems 提到的一种分布式存储编码方式,相比RS 编码具有更小的恢复带宽,参考这里的分布式存储数据恢复问题。这笔记也是为了记录这篇文章。