摘要:在支持纠删码的分布式存储系统中, 最常用的编码是RS (Reed-Solomon)码. 对于一个RS(k, m)编码条带, 常见的配置是一个节点仅存储条带中的一个分片, 这导致在节点出现故障的情况下, 对其存储分片的恢复需要跨多个节点读取分片并重新编码生成恢复分片, 容易造成系统网络拥塞. 在需要恢复大量数据的场合, 系统在恢复期间会处于较长时间的脆弱期, 容错能力和吞吐量下降、读写时延升高时有发生. LRCRaft是一个基于LRC (local reconstruction code)的改进Raft共识协议, 通过在Raft中引入LRC码、动态日志增补、状态机删减和分片版本一致性等机制, 降低了Raft的读写时延, 缩短了节点故障恢复时间. 实验结果表明, 相较于Raft, LRCRaft在不同恢复模式中恢复一个单节点故障数据时, 恢复用时有着49.25%–74.97%的减少.