LRC codes理解
之前看了再生码的相关文献,大概知道了再生码的由来,也知道了两种trade off下的结果,且LRCs是针对RG codes来解决部分问题的。
LRC codes最根本的是要解决再生码修复过程中的修复度问题(利用局部性Locally来解决)。
------------------------------------------------------------------
Regeneration codes
存储开销和修复开销的关系:当码率越大,存储空间的效率越高,修复需要的数据量越大。(从定性分析的角度考量)
然后A.G.Dimakis等人首次利用信息流图推导出存储开销与修复开销满足以下(这个不等式之前也提到过):
存储开销是所有节点存储量的总和:n×α
修复开销是所有参与修复的存储节点所需要传输的数据量:d×β
----------------------------------------------------------------------
LRC codes
上面说的再生码是从存储(Storage)和修复带宽(Bandwidth)的角度考虑编码的(我的理解:假如电影A有1GB,再生码的思想是,把这1GB通过MSR或者MBR的方法,存到分布式系统里面,存进去以后,不论是用MSR还是MBR的方法,这个电影总共的大小仍然是1GB,因为再生码取的是等号成立的情况;LRC码的思想是:我现在在分布式系统中存的电影不止1GB,我多一点点,可能达到了1.1GB,但是好处是,我能用少量的节点信息,把失效节点信息恢复出来),那么LRC码是通过增加额外的存储,将修复度减少(尽可能在少的节点辅助下完成修复),所以LRC码没有达到存储最优,好处是修复很简单,不需要有很大的修复带宽。(不难理解,之前的再生码是利用纠删码的性质,尽可能的提高编码效率,但是在修复的过程中,肯定就要东扯西扯,有很大的修复带宽)
-------------------------------------------------------------------------------------------------------------------------------------------
接下来是说(n,k,r)LRC码的一些参数意义:
n:线性码中码长
k:信息码的位数
r:如果是线性码中,这个r就是d,但是在LRC码中,r有不一样的含义,此处的r代表了“如果一个[n,k]线性码中的一个码符的值可以通过访问最多r个其他的码符来恢复,那么这个码符就具有修复局部性r(简称为r-locality)。具有修复局部性的码就称为局部可修复码(LRCs)。”,自己理解:修复一个码符时,需要借助r个其他的码来恢复该码符。
在论文《Codes with minimum bandwidth cooperative local regeneration》中的A部分,有提到(r,δ)-LRC,此处引入(r,δ)-LRC的目的是(在导师博士毕业论文中也有提到)“如果故障节点仅存在一个局部性为r的修复集,那 么如果这些r个节点中的一个也失效,则不能再通过只访问这r个节点来恢复故障的节点。换句话说,r-locality只能容忍一个节点故障。目前,已经有很多的方法来克服这个问题”:目的是解决多个节点故障的问题,
引申出来的就有很多的研究细节问题:
1、单个节点修复(单次只修复单个节点)
2、多个节点修复(一次多个节点修复)
3、.......
另一方面来说,界(bound)就非常关键,因为界是衡量该码性能的标准,理解各个界(并且推导各个界)就是非常重要的课题。
LRC码修复如图:
------------------------------------------------------------------------------
LRC码的最小距离满足上界如下:
接下来证明这个上界怎么来的【论文《On the Locality of Codeword Symbols》】:
参考知乎文章:https://zhuanlan.zhihu.com/p/610398954
(我看不懂证明,希望以后能理解吧!再回来写怎么推导出来的)
---------------------------------------------------------------------------------
上述的局部修复码只能修复一个故障节点,针对多个故障节点的LRC修复,引入了(n,k,r,δ)-局部修复码,针对多个故障节点修复的局部修复码满足上界如下:
接下来也证明这个不不等式【《On the Locality of Codeword Symbols》和《Codes With Local Regeneration and Erasure Correction》】: