[论文解读] The CORE Storage Primitive: Cross-Object Redundancy for Efficient Data Repair & Access in Erasure Coded Storage
本文提出CORE,一种新型存储原语,将传统纠删码与RAID-4风格的跨对象校验结合,显著提升分布式存储系统中的修复效率和降级读取性能。通过在不同对象的纠删码数据块上应用列方向的XOR校验,CORE将修复带宽最多降低50%,单节点恢复速度提升75%,相比传统纠删码,同时仅增加20%的存储开销,保持了较高的容错能力。
Erasure codes are an integral part of many distributed storage systems aimed at Big Data, since they provide high fault-tolerance for low overheads. However, traditional erasure codes are inefficient on reading stored data in degraded environments (when nodes might be unavailable), and on replenishing lost data (vital for long term resilience). Consequently, novel codes optimized to cope with distributed storage system nuances are vigorously being researched. In this paper, we take an engineering alternative, exploring the use of simple and mature techniques -juxtaposing a standard erasure code with RAID-4 like parity. We carry out an analytical study to determine the efficacy of this approach over traditional as well as some novel codes. We build upon this study to design CORE, a general storage primitive that we integrate into HDFS. We benchmark this implementation in a proprietary cluster and in EC2. Our experiments show that compared to traditional erasure codes, CORE uses 50% less bandwidth and is up to 75% faster while recovering a single failed node, while the gains are respectively 15% and 60% for double node failures.
研究动机与目标
- 为解决传统纠删码在节点故障下修复丢失数据和执行降级读取时的低效问题。
- 探索一种实用的、工程驱动的替代方案,替代复杂的新型编码方案,通过结合成熟技术:标准纠删码与RAID-4风格的列校验。
- 设计并实现CORE作为通用的、基于块级别的存储原语,兼容HDFS。
- 在真实集群和AWS EC2环境中,评估CORE相较于传统MDS码和最先进的局部可重构码(LRCs)的性能表现。
- 优化修复调度和数据访问模式,以进一步降低网络和计算关键环境下的修复成本。
提出的方法
- 对每个数据对象独立应用标准(n,k) MDS纠删码(如Reed-Solomon),为每个对象生成k个数据块和m个校验块。
- 构建一个矩阵,其中每行代表一个对象的编码块,再在底部添加一行列方向的XOR校验(RAID-4风格),覆盖不同对象的块。
- 利用列方向校验实现高效、低成本的修复:单节点故障可通过对少量块(如示例中的3个)执行XOR操作完成修复,避免昂贵的Reed-Solomon解码。
- 将CORE集成到HDFS-RAID中作为透明存储层,使其能与现有HDFS数据共存,并利用HDFS的块管理机制。
- 实现并评估三种修复调度算法:行优先(Row-First)、列优先(Column-First)和修复组调度(RGS, Repair-Group Scheduling),以最小化修复时间和数据传输量。
- 调整CORE矩阵参数(如(9,6,3)与(14,12,5)),在存储开销、容错能力和修复效率之间取得平衡。
实验结果
研究问题
- RQ1将标准纠删编码与跨对象RAID-4风格校验结合,是否能显著降低修复带宽和修复时间,相比传统纠删码?
- RQ2CORE的性能与生产系统中使用的最先进的局部可重构码(LRCs,如Windows Azure)相比如何?
- RQ3所提出的修复调度算法(行优先、列优先、RGS)在同时存在网络和计算瓶颈的环境中,能在多大程度上减少修复完成时间?
- RQ4CORE中存储开销与修复效率之间的权衡如何?是否能在仅增加20%开销的情况下实现接近最优的容错能力?
- RQ5如避免冗余块读取(Opt1)和减少修复依赖(Opt2)等优化措施,在真实集群中如何提升性能?
主要发现
- 在计算关键型集群中,CORE将单节点故障恢复的带宽使用降低50%,修复时间最多减少75%,相比传统纠删码。
- 在双节点故障情况下,CORE的带宽使用比传统纠删码低15%,修复速度提升60%。
- 在带宽受限环境中,列优先修复调度算法在最小化数据传输方面优于行优先和RGS算法。
- 优化O1(避免冗余块读取)在以网络为瓶颈的集群中显著提升性能,尤其在(9,6,3)配置下效果明显。
- 优化O2(减少修复依赖)进一步缩短修复时间,尤其在计算关键型集群中,尽管增益不如O1显著。
- 将CORE矩阵规模从(9,6,3)扩大到(14,12,5)可带来更高的性能增益,尤其在计算受限环境中表现更优。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。