论文部分内容阅读
随着硬件工艺的发展,多核处理器、GPU、RDMA、非易失性内存等新硬件不断涌现。这些新型硬件为数据存储与管理技术的发展带来了新的契机。很多应用将传统的存储系统或数据库系统直接部署在新型的存储和网络设备上运行,旨在利用这些高性能的设备来突破现有的性能瓶颈。然而,直接将传统的软件技术迁移到新硬件上无法充分发挥硬件的潜能,因为传统的软件技术往往忽略了新硬件引入的新特性。因此,如何结合新硬件的特性,面向海量数据搭建高性能的分布式存储集群,是一个值得深入研究的问题。本文的研究工作围绕NVMe SSD和RDMA设备展开。支持NVMe协议的固态硬盘相较于传统的磁盘,不仅在吞吐量和延迟上有了较大的改善,还引入了支持多I/O队列的新特性。RDMA不仅减少了网络传输延迟,同时也减少了CPU开销。本文结合这些新硬件的特性,分析了分布式存储集群中的瓶颈问题,从本地存储栈的优化技术、基于LSM-tree索引结构的并行日志策略以及主备同步的改进方法三个方面来研究如何结合新硬件的新特性优化数据存储与管理,主要的工作和贡献如下:(1)本地存储栈的优化技术:在磁盘流行的时代,大多数数据库系统依赖于复杂精细的、面向兼容性设计的存储软件栈。由于慢速存储设备的硬件I/O延迟较大,存储软件栈的开销几乎可以被忽略。然而,新型的NVMe存储设备已经达到了和软件相同的延迟级别,从而使存储软件栈成为影响数据存储效率的新瓶颈。为了充分发挥NVMe设备的硬件潜能,本文面向新硬件优化了本地存储软件栈,旨在最大程度地减少存储软件的开销。优化后的存储软件栈直接在用户空间中访问NVMe设备,以减少单个I/O操作的延迟。同时,本文将多核和NVMe SSD的多I/O队列进行绑定,以提高数据存取操作的并行性。此外,本文还在异构存储之上记录撤销日志以进一步缓解写入放大的问题。(2)基于LSM-tree索引结构的并行日志策略:为了充分发挥NVMe SSD带来的并行性优势,本文改进了基于LSM-tree索引结构的日志操作,实现了日志的并行化写入。核心思路是将单阶段的日志写入改进为两阶段的日志提交。在第一阶段,本文结合NVMe SSD多I/O队列的并行特性进行日志持久化操作。在第二阶段,根据规则进行日志提交,确保数据的正确性和一致性。此外,本文分析了如何使现有的基于LSM-tree的存储系统支持更高的日志并行性,并讨论了日志提交协议、恢复协议、多I/O队列的调度等问题。实验结果表明,基于上述策略优化后的存储系统的性能得到了显著提升。(3)主备同步的改进方法:传统的分布式集群无法充分发挥高性能存储设备和网络设备的硬件潜力。为了解决这个问题,本文针对传统的主备同步方法,进行了优化设计。一方面,本文提供了轻量的分布式表存储管理的功能,支持行和列的混合存储以及动态的在线转换。另一方面,本文结合RDMA的单边操作原语改进了Raft协议,通过将主节点的主动同步改为备节点的主动拉取,以减少网络传输的开销。实验结果表明,与传统的分布式存储系统相比,本文的优化方法可以将性能提高1.5-4.3倍。综上所述,本文结合新型NVMe SSD和RDMA设备,从本地存储栈的优化、基于LSM-tree索引结构的日志并行策略以及主备同步的改进方法三个方面,阐述如何通过充分发掘新硬件的潜能来提高数据存储与管理的效率。基于这些优化方法,本文实现了相应的存储引擎,该存储引擎充分利用了NVMe SSD的超低延迟以及高带宽的特性、多I/O队列的并行性和RDMA高效的读写原语,为面向新硬件实现高效的数据存储与管理奠定基础,也为相关的研究工作提供了一定的参考价值。