分享自:

通过可编程SSD上的批量I/O提高数据库成本/性能

期刊:the vldb journalDOI:10.1007/s00778-020-00648-z

这篇文档属于类型a,即报告了一项原创性研究。以下是对该研究的学术报告:

作者与发表信息

该研究由Jaeyoung Do、Ivan Luiz Picoli、David Lomet和Philippe Bonnet共同完成。Jaeyoung Do和David Lomet来自微软研究院(Microsoft Research),而Ivan Luiz Picoli和Philippe Bonnet则来自哥本哈根IT大学(IT University of Copenhagen)。研究发表于2021年的《The VLDB Journal》期刊,具体发表日期为2021年2月18日。

学术背景

该研究的主要科学领域是数据库系统与存储技术。研究的背景是存储层次结构中的成本与性能权衡问题。随着数据与CPU的距离增加,存储性能下降,但成本也随之降低。传统的日志结构化(log structuring)技术通过将主内存中的页面批量写入二级存储来改善成本/性能比,但日志结构化会带来恢复和垃圾回收(garbage collection, GC)的开销。随着可编程固态硬盘(programmable SSD)的出现,研究者提出了将日志结构化从CPU卸载到SSD上的新方法,旨在减少这些开销。

研究的目标是设计一种新的批量I/O存储接口,并在SSD端实现日志结构化,从而减少CPU的计算和I/O负载。具体来说,研究者比较了基于主机的日志结构化与基于可编程SSD的日志结构化在BW-Tree键值存储中的性能差异。

研究流程

研究的主要流程包括以下几个步骤:

  1. 问题与机会分析
    研究者首先分析了存储层次结构中的成本与性能问题,指出减少I/O成本可以显著改善成本/性能比。通过比较内存、SSD和数据缓存系统的成本与性能,研究者提出了一种新的存储接口设计思路。

  2. 批量I/O接口设计
    研究者设计了一种新的批量I/O存储接口,允许主机将多个逻辑页面(logical page)打包成一个缓冲区,并通过一次I/O操作写入SSD。SSD控制器负责将这些逻辑页面映射到物理存储位置,并处理恢复和垃圾回收任务。

  3. 日志结构化功能实现
    研究者在SSD控制器中实现了日志结构化功能,包括逻辑页面到物理地址的映射表管理、垃圾回收和检查点/恢复机制。研究者还设计了一种分层映射表结构,以高效管理大规模存储设备的映射表。

  4. 耐用性与恢复机制
    研究者详细描述了如何在SSD控制器中实现耐用性(durability)和恢复机制。通过写前日志(write-ahead logging, WAL)协议,SSD控制器在写入数据之前先记录日志,确保在系统崩溃后能够恢复映射表和数据状态。

  5. 垃圾回收机制
    研究者设计了一种基于擦除块(erase block)的垃圾回收机制,通过跟踪无效页面(invalid page)并移动有效页面(valid page)来回收存储空间。垃圾回收机制还考虑了磨损均衡(wear leveling)问题,以延长SSD的使用寿命。

  6. 检查点机制
    研究者提出了一种模糊增量检查点(fuzzy incremental checkpoint)策略,用于定期保存系统状态并截断恢复日志。检查点机制通过分层结构高效管理映射表、垃圾回收状态和磨损计数。

  7. SSD控制器编程
    研究者开发了一个名为OX的框架,用于编程SSD控制器。OX框架包括传输与解析层、FTL层和媒体管理层,支持批量I/O接口的实现。研究者还详细描述了如何通过OX框架管理坏块(bad block)、块元数据(block metadata)和映射表。

  8. 性能评估
    研究者通过实验评估了批量I/O接口在BW-Tree键值存储中的性能。实验包括写入吞吐量测试和YCSB基准测试,比较了基于主机的日志结构化与基于SSD的日志结构化在不同工作负载下的性能差异。

主要结果

  1. 批量I/O接口效率
    实验结果表明,批量I/O接口的写入吞吐量比传统块I/O接口高出约4.8倍,显著减少了CPU的I/O执行成本。

  2. YCSB基准测试结果
    在YCSB基准测试中,基于SSD的日志结构化系统(bwtree_batch)在读取密集型(read-heavy)和写入密集型(write-heavy)工作负载下的吞吐量分别比基于主机的日志结构化系统(bwtree_block)高出1.4倍到2.6倍。

  3. 检查点与垃圾回收影响
    实验表明,检查点和垃圾回收对系统性能的影响较小,尤其是在检查点间隔较短的情况下。基于SSD的垃圾回收机制比基于主机的垃圾回收机制更高效,减少了读写放大(read/write amplification)和GC开销。

结论

该研究通过设计一种新的批量I/O存储接口,成功将日志结构化从主机卸载到SSD控制器中,显著减少了CPU的计算和I/O负载。实验结果表明,基于SSD的日志结构化系统在性能上优于基于主机的日志结构化系统,特别是在大规模数据存储场景下。该研究为存储层次结构中的成本与性能优化提供了新的解决方案,具有重要的科学价值和应用前景。

研究亮点

  1. 批量I/O接口设计:研究者设计了一种新的批量I/O存储接口,显著减少了I/O操作的开销。
  2. 日志结构化卸载:通过将日志结构化卸载到SSD控制器中,研究者成功减少了主机的计算和I/O负载。
  3. 高效垃圾回收机制:基于SSD的垃圾回收机制比基于主机的垃圾回收机制更高效,减少了读写放大和GC开销。
  4. OX框架开发:研究者开发了OX框架,用于编程SSD控制器,支持批量I/O接口的实现。

其他有价值的内容

研究者还讨论了未来研究方向,包括利用非易失性内存(non-volatile memory, NVM)进一步减少耐用性开销,以及通过硬件支持的RDMA(远程直接内存访问)避免数据拷贝。这些方向为未来的存储技术研究提供了重要参考。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com