信息存储系统教育部重点实验室

博士生程良锋的论文被会议SC2021录用


近年来,如何低成本且高可靠地存储全球爆炸增长的海量数据日益成为数据存储领域的重要挑战。纠删码(Erasure coding)技术通过将k个数据块线性编码生成r个校验块,并将k+r个数据和校验块放置到不同的存储节点上,构成编码条带,可以实现数据存储的高可靠和低成本。进一步,在FAST 2021(ECWide)和ICDCS 2021(StripeMerge)提出的大条带编码技术,通过构建远大于一般纠删码存储系统(k=20)的k个数据块实现极致的存储成本。

在内存键值存储系统(In-memory KV Store)中,大条带编码技术中的数据更新会造成巨大的网络传输、存储和计算开销。我们分析了传统的多种数据更新方案,包括直接重编码、In-place、Full-stripe和Parity logging方案,发现其均存在各自的优缺点,无法很好地解决Erasure-coded in-memory KV store的数据更新问题。

信息存储及应用实验室博士生程良锋、研究助理柯兆康,硕士生徐佳和姚乔日,在胡燏翀教授的指导下,设计实现了一种基于In-place和Parity logging混合数据更新系统(LogECMem)。对于传统的数据更新方案,我们通过观察和分析,指出了其存在的数据更新延迟和内存开销之间的平衡关系,并提出了一种混合存储架构(HybridPL Architecture)。

并首次将基于磁盘的Parity logging技术引入内存键值存储系统。我们基于马尔科夫链的可靠性分析,对数据块和首个校验块采用在内存节点(DRAM node)中利用In-place更新方案来确保高效的单块数据块修复性能和低内存存储开销,对剩余校验块采用在日志节点(Log node)中Parity logging技术来实现高效的数据更新。进一步,在日志节点,我们设计了Merged-based buffer logging方案,将同一个条带的多次更新通过线性计算合并为一次差值更新来匹配内存节点中数据块和首个校验块的更新性能;设计PLM方案,通过将更新的数据批量快速写入磁盘,然后惰性地进行数据块合并操作并写入特定区域来提高日志节点的数据更新性能以及多个数据块失效的修复性能;设计log-assist方案,通过日志节点进行额外地辅助修复来提高节点修复性能。亚马逊云环境上的测试结果显示,LogECMem相较于In-place和Full-stripe更新方案,降低更新时间分别达到了37.8%和58.0%,降低内存存储开销分别达到了22.2%和49.0%,同时还保持了高效的IO访问和数据修复性能。

该研究题为“LogECMem: Coupling Erasure-Coded In-Memory Key-Value Stores with Parity Logging”发表在中国计算机学会推荐的A类国际学术会议International Conference for High Performance Computing, Networking, Storage, and Analysis(SC 2021)。原型系统LogECMem已开源https://github.com/yuchonghu/logecmem。 该研究工作得到了国家自然科学基金(No. 61872414)项目的资助。

图1 传统数据更新方案示意图

图2 HybridPL框架

图3 在不同编码参数和读更新比例数据集下,LogECMem和对比系统的数据更新延迟和内存处处开销对比图

注:本文为原创,如转载请注明出处。

分享文章

Share