首页|基于近数据计算的LSM--tree键值存储系统Compaction优化方法

基于近数据计算的LSM--tree键值存储系统Compaction优化方法

扫码查看
大数据环境下,传统关系型数据库难以满足应用对高性能、低带宽等存储系统的需求,而基于LSM-tree的键值存储系统具有高吞吐量、高扩展性等优点,逐渐替代传统关系型数据库而被广泛部署到大规模数据中心。然而,在随机写密集型负载下,LSM-tree键值存储系统会频繁执行compaction操作,引起数据写放大,降低系统的吞吐量。现有compaction的优化方法大多采用以主机端CPU为中心的方案来降低写放大,提高系统性能,但该类方法较依赖主机端CPU和I/O资源,数据传输量较大且系统资源利用率较低。本文利用存储系统中近数据计算模型(Near-Data Processing,NDP),提出了两种compaction操作优化方案(Co-KV和DStore),实现主机端与设备端并行执行compaction任务,降低主机端CPU负担,减少I/O数据传输量,以提高LSM-tree存储系统的性能。 首先,本文提出面向compaction任务的静态优化策略Co-KV。Co-KV是一种基于近数据计算架构的compaction任务静态卸载策略和主机端-设备端协同执行compaction任务的方案。当compaction操作触发时,Co-KV主机端系统计算compaction所涉及的SSTable文件并按照静态卸载比值将其分成两个子任务,主机端系统通过语义管理功能将子任务分别卸载到主机端和具有近数据计算能力的NDP设备端1,由两端的任务执行模块并行执行compaction操作。Co-KV利用两端系统的计算资源,降低了主机端的CPU和I/O占用负担,提高了存储系统吞吐量。本文在OED平台上验证了Co-KV方案的可行性,在db_bench负载下,LevelDB的吞吐量仅为3.5MB/s,Co-KV的吞吐量最高达5.9MB/s。 尽管Co-KV中的静态卸载策略较好改善了LevelDB性能,但却不能适应负载和平台的变化。当负载和平台类型变化时,静态卸载策略可能导致主机端或设备端的任务处理延时较长的问题,影响系统性能。为此,针对Co-KV静态优化compaction策略的不足,提出了一种DStore方案,实现compaction任务动态卸载和按需调度的策略。DStore根据主机端和设备端compaction任务处理能力计算两端的任务卸载比值,并同compaction任务信息一并发送到设备端。设备端根据接收的任务卸载比值,将compaction任务分割成多个子任务,建立此次compaction任务双端队列。之后,创建两个互斥线程根据两端子任务实际处理情况,从双端队列中按需调度子任务。DStore优化了Co-KV中静态卸载比值的不足,避免了因子任务处理延时较长而降低系统两端compaction并行执行性能的情况。在基础实验平台下的测试结果表明,相比Co-KV和LevelDB,DStore对写吞吐量的优化分别提升了2.3倍和5倍。在不同内外带宽比例、不同计算能力以及OED平台的扩展实验中,相比Co-KV和LevelDB,DStore具有较明显的性能优势。

刘伟

展开 >

LSM-tree键值存储系统 Compaction任务 近数据计算 执行性能

硕士

计算机科学与技术

施巍松;孙辉

2019

安徽大学

中文

TP