论文部分内容阅读
随着区块链、机器学习、人工智能等前沿科技的发展,每天都会产生海量的数据,如何存储及处理这些数据成为大数据研究领域的热点。分布式存储可以实现大规模的存储需求,但系统中的节点时常出现故障而导致存储数据丢失。为了保证数据的安全性和可靠性,选用纠删码作为数据容错机制,在节点发生故障之后对失效数据进行有效地修复。不过,纠删码修复过程中必须从其他可用于解码计算的节点上下载数据,占用的网络带宽较多、修复时间较长,致使数据读取性能下降。如果修复速度较慢,甚至不如节点发生故障的速度,系统的可靠性将无法维持。流水线是目前效率最高的数据传输网络结构,流水线修复方法(Repair Pipelining,RP)可显著缩短修复时间,提高修复效率,但仍然存在一些缺陷(例如,负载不均衡)。基于此,本课题重点研究分布式存储中纠删码流水线修复技术的若干相关问题。首先,提出基于负载均衡的流水线修复方法(Repair Pipelining based on Node Load Balancing,NLB-RP),处理RP修复过程中节点负载不平衡的问题。RP中改善了节点负载不均衡的情况,但仍有改进空间。NLB-RP中通过添加不同构造的数据传输路径来平衡节点负载,并选取更多节点加入修复,进一步减少节点负载。综合理论分析及实验数据,可以证明NLB-RP从局部上平衡、从整体上减轻了节点负载,并且没有引入新的修复代价。与RP相比,NLB-RP的节点负载方差计算结果为0,这说明各个节点具有相同的负载。因此,NLB-RP是一种具有最优负载均衡性的修复方法。其次,设计部分并行的流水线修复方法(Partially Parallel Repair Pipelining for Multiple Failures,PPRP)以提高多节点修复效率。构建基于流水线路径的多节点修复模型,将修复操作划分为多个并行的部分以此提高流水线的并行度,降低了总的修复时间。与此同时,部分节点传输计算中间数据以此避免冗余传输本地数据,降低了总的修复带宽。最后,基于Piggybacking码设计去冗余流水线修复方法(Repair Pipelining for Reducing Redundancy based on Piggbacking,Pig-RP)以扩展流水线修复方法并应用于其他编码策略。Piggybacking码具有低修复带宽和低磁盘I/O开销,但缺乏快速修复方法。因此,利用流水线网络结构加速其修复过程。先基于单节点修复设计Pig-RP,再扩展到多节点修复场景中。修复单节点时,Pig-RP主要通过降低拥塞度来降低修复时间。修复多个节点时,Pig-RP不仅降低拥塞度,还大幅度降低修复带宽和磁盘I/O开销,从而减少总的修复时间。