功能性修复再生码循环修复的一些性质

在我的开源的编码库中有一些判断功能性修复再生码(Regenerating Codes with Uncoded Repair)循环修复的一些性质,这里mark 一下。

前提:所有性质的判断都是针对通过随机线性码实现再生码的生成矩阵(generator matrix,GM),矩阵GM 有αn 行和c 列,相应的每个存储节点i 对应着矩阵GM 中连续的α 行,所以将每个节点的子矩阵(sub-GM)记作GMi 。每失效并修复一个节点时,相应的sub-GM 失效,并通过从d 个剩余sub-GMs 中获取dβ 个向量,随机线性组合为新的sub-GM。

继续阅读

TeXworks 快捷方式

以前一直用pspreview+xelatex+Notepad++,最近TeXlive2013 也试着安装了下,感觉TeXworks 的速度快,使用方便,有些特性非常实用。比如TeXworks 提供从pdf 源文件跳转到源码位置,只需要右键->跳至源文件,或者Ctrl+pdf上的位置,就可以跳转到源文件对应的位置了。TeXworks 有Preview window(显示pdf)和source window(显示源码)两个界面,在两个界面的快捷方式有:

继续阅读

d=k+1,n=2k,α=2,β=1 Exact Regenerating Code with uncoded repair— CME

文章bibtex

@article{陈勇2012基于组合矩阵的精确修复, title={基于组合矩阵的精确修复 MDS 编码< br/>}, author={陈勇 and 武国强 and 林宝军}, journal={宇航学报}, volume={33}, number={11}, pages={1654--1659}, year={2012} }

文章提出了d=k+1, n=2k, α=2, β=1 精确修复的再生码CME(Compound-Matrix Encoding),CME 是系统码,每个节点都保存了1/n 的原始数据,存放模式如下图,一半原始数据,一半冗余数据。文章在域GF(2) 下给出了详细的构造、修复方法。

20

继续阅读

最近收到推送的文章

这两个月收到不少scholar 推送的文章,有十几篇,抽空看看了。

1  Tree-Structured Parallel Regeneration for Multiple Data Losses in Distributed Storage Systems Based on Erasure Codes(基于纠删码的分布式存储系统中针对多数据失效的树型并行修复技术)

针对多块数据丢失再生冗余数据块进行了讨论,主要是优化速度,通过并行加速修复过程。提出了一种树型修复方式

2  An Improved Sub-Packetization Bound for Minimum Storage Regenerating Codes

文章讨论了MSR的系统码(systematic code)中B(文中用sub-packetization l表示)和k 和r=n-k 的关系。(n, k)-MSR系统码要求k不能太大,否则无法修复。文中虽然没有给出k 具体的上限,但给定了一个上限

3  Symmetry in Distributed Storage Systems

文章提出一种可以达到任意码率的精确修复的(n,k,d,,α,β)再生码方案:concatenation scheme

4  Impact of Stripe Unit Size on Performance and Endurance of SSD-Based RAID Arrays

文章讨论了SSD 中RAID 分片大小,4KB 条带更适合SSD RAID

5  RAIDq: A software-friendly, multiple-parity RAID

文章基于plank 和HP anvin 的文章提出了编解码速度非常快的RAIDq ,可以详细看看

6  Rateless codes and random walks for P2P resource discovery in grids

在P2P 存储系统中使用rateless codes 实现网络编码,较少资源更新时的网络开销

7  Efficient Encoding Schedules for XOR-based Erasure Codes

之前会议的文章的republish

8  Erasure coding for cloud storage systems: A survey

从MDS 到Regenerating codes 的survey,入门survey,讲的也不是很全,但普及了概念

9  Enabling Data Integrity Protection in Regenerating-Coding-Based Cloud Storage: Theory and Implementation (Supplementary File)

香港科技大学网络编码实验的一片关于NCCloud 和FMSR 的补充说明:加密和存储开销等

10  基于组合矩阵的精确修复MDS 编码

精确修复和GF(2) 是亮点,希望这篇不会让我失望

GNU gprof 和 graphviz 调优程序

GUN gprof 是一款分析程序运行的工具,可以提供程序调用关系,函数运行次数以及函数运行时间,为程序员最大限度的优化自己的程序提供帮助。记得在《可视化函数调用》中提到了可视化工具graphviz,结合gprof 和graphviz,并利用gprof2dot 可以可视化以上以上信息。

几个工具使用起来都非常方便。使用gprof 只需要在运行参数前加 -g 即可。然后

./test

运行可执行程序,将生成gmon.out 的日志文件(这是程序员也看不懂的二进制文件),使用下面命令

gprof ./test gmon.out >report.txt

生成report.txt 表。

想使用gprof2dot 可视化这个报表就更简单了,在gprof2dot 官网 下载gprof2dot.py 执行(确保你安装了python 和graphviz):

gprof ./test | gprof2dot.py | dot -Tpng -o output.png

怎么样! 是不是生成了一个output.png 的图片,打开看看吧!

继续阅读

Valgrind Tutorial

Valgrind 是用于调试程序的工具套件,其中最有名的工具是Memcheck,它能够检测出C/C++ 中因为内存错误导致程序中断的问题。

一、引言

使用Valgrind 有两个必要条件:一安装了Valgrind;二需要在编译程序参数中加上 -g 选项;尽量不要使用  -O2 或者更高级别的代码优化,这样会导致Memcheck 误报未初始化的参数(uninitialised-value errors )。 调试方法非常简单,如果你的程序如下执行:

MyProg arg1 arg2 ...

那么这样使用如下命令:

valgrind --leak-check=yes MyProg arg1 arg2 ...

Memcheck 是默认工具(也可以用 –tool=memcheck 指定工具),–leak-check 选项打开了内存泄露检查工具。

继续阅读