论文部分内容阅读
键值存储是支撑数据中心和众多数据密集型应用的关键技术,广泛应用于网页检索、电子商务、云存储、社交网络等领域。大数据时代下,键值存储的发展始终围绕着三大需求,即更高的访问效率、更大的存储容量和稳定可预测的性能。在近些年发展的新型存储器件中,瓦记录磁盘显著提高了磁盘面密度,具有低成本、高存储容量的优势;非易失性内存则能够明显提升访问效率,兼具传统硬盘的持久性和接近DRAM的存取速率。因此,新型存储器件符合键值存储的发展需求,是进一步提升和优化键值存储系统的关键。然而,现有基于传统块设备的键值存储系统难以适应新型存储器件的特性及访问模式。为了充分发挥新型存储器件的优势,避免引入额外开销,本文基于瓦记录磁盘和非易失性内存两种新型存储器件,提出了三种键值存储系统的性能优化方案:首先,在基于瓦记录磁盘的键值存储系统中,解决了冗余垃圾回收造成的存取性能下降和空间利用率低的问题;其次,在包含非易失性内存的混合键值存储系统中,解决了长尾延迟和写放大问题;最后,在基于非易失性内存的主存键值存储系统中,解决了键值存储的索引结构扩展性不足、无法高效地支持各键值操作的问题。
瓦记录磁盘能够提供更大的存储容量,但必须严格遵循顺序写。顺序写使瓦记录磁盘在使用中产生无效数据,需要通过垃圾回收操作整理磁盘空间。日志结构合并树是键值存储系统主要的索引结构,尤其适用于写密集型负载。日志合并树的合并操作能够清除无效数据,维持数据分层有序,但造成了严重的写放大。因此,基于瓦记录磁盘的键值存储系统存在冗余的垃圾回收,即日志合并树的合并操作和瓦记录磁盘的磁盘空间整理。冗余的垃圾回收导致系统性能下降、磁盘空间利用率不足。针对这一问题,提出了一种基于瓦记录磁盘、无磁盘垃圾回收的键值存储系统GearDB。GearDB首先通过一种新的数据布局将日志合并树的同层数据在磁盘上聚集,为每一层设定一个合并窗口;然后为日志合并树设计了齿轮合并策略,将键值存储的合并操作限制在合并窗口内,通过释放不含有效数据的合并窗口自动回收磁盘空间,消除冗余的垃圾回收。GearDB的系统原型基于开源键值存储LevelDB实现,实验结果表明相对于LevelDB,GearDB在提升1.71倍系统性能的同时始终维持了90%的空间利用率。
非易失性内存具有字节寻址特性和高效的随机读写能力,是提升键值存储系统性能的有力保障。日志合并树结构的合并操作一方面造成了写放大,另一方面阻塞了前台操作,造成长尾延迟。长尾延迟问题使系统性能不定期地下降,无法为用户提供稳定可预测的系统性能。针对这一问题,提出了一种基于非易失性内存的混合键值存储系统TriangleDB。TriangleDB采用DRAM-NVM-SSD存储架构。首先,将日志合并树中无序的顶层(L0)存储在非易失性内存中,使用三角形数据结构管理数据;其次,基于三角形数据结构,设计了一种细粒度合并策略,降低合并开销。TriangleDB的系统原型基于开源键值存储RocksDB实现,实验结果表明相对于RocksDB,TriangleDB消除了系统的长尾延迟,降低了写放大,并最终将随机写吞吐量提高了3.82倍。
非易失性内存与DRAM存取速度相近,但存储容量更大,单位成本更低,是构建下一代主存键值存储系统的关键存储器件。当前支持内存键值存储的索引结构存在扩展性不足、无法高效地支持各种键值操作的问题。针对这一问题,提出了一种基于非易失性内存的持久化索引结构ComboTree。ComboTree由三层构成:中间层通过有序数组将整个键值空间划分为多个连续的子范围;顶层通过累积分布函数加速键值对在中间层的定位;底层存储属于每个子范围的轻量级B+Tree。当底层容量达到阈值时,ComboTree按键值大小依次进行后台扩展,同时支持前台访问。ComboTree的原型在Intel的最新非易失性内存OptaneDCPMM上实现,能够高效地支持各种键值访问操作并提升键值存储的扩展性能。相比基于非易失性内存的最新索引结构FAST&FAIR,ComboTree提升了2.9倍随机写性能和1.8倍的随机读性能。
瓦记录磁盘能够提供更大的存储容量,但必须严格遵循顺序写。顺序写使瓦记录磁盘在使用中产生无效数据,需要通过垃圾回收操作整理磁盘空间。日志结构合并树是键值存储系统主要的索引结构,尤其适用于写密集型负载。日志合并树的合并操作能够清除无效数据,维持数据分层有序,但造成了严重的写放大。因此,基于瓦记录磁盘的键值存储系统存在冗余的垃圾回收,即日志合并树的合并操作和瓦记录磁盘的磁盘空间整理。冗余的垃圾回收导致系统性能下降、磁盘空间利用率不足。针对这一问题,提出了一种基于瓦记录磁盘、无磁盘垃圾回收的键值存储系统GearDB。GearDB首先通过一种新的数据布局将日志合并树的同层数据在磁盘上聚集,为每一层设定一个合并窗口;然后为日志合并树设计了齿轮合并策略,将键值存储的合并操作限制在合并窗口内,通过释放不含有效数据的合并窗口自动回收磁盘空间,消除冗余的垃圾回收。GearDB的系统原型基于开源键值存储LevelDB实现,实验结果表明相对于LevelDB,GearDB在提升1.71倍系统性能的同时始终维持了90%的空间利用率。
非易失性内存具有字节寻址特性和高效的随机读写能力,是提升键值存储系统性能的有力保障。日志合并树结构的合并操作一方面造成了写放大,另一方面阻塞了前台操作,造成长尾延迟。长尾延迟问题使系统性能不定期地下降,无法为用户提供稳定可预测的系统性能。针对这一问题,提出了一种基于非易失性内存的混合键值存储系统TriangleDB。TriangleDB采用DRAM-NVM-SSD存储架构。首先,将日志合并树中无序的顶层(L0)存储在非易失性内存中,使用三角形数据结构管理数据;其次,基于三角形数据结构,设计了一种细粒度合并策略,降低合并开销。TriangleDB的系统原型基于开源键值存储RocksDB实现,实验结果表明相对于RocksDB,TriangleDB消除了系统的长尾延迟,降低了写放大,并最终将随机写吞吐量提高了3.82倍。
非易失性内存与DRAM存取速度相近,但存储容量更大,单位成本更低,是构建下一代主存键值存储系统的关键存储器件。当前支持内存键值存储的索引结构存在扩展性不足、无法高效地支持各种键值操作的问题。针对这一问题,提出了一种基于非易失性内存的持久化索引结构ComboTree。ComboTree由三层构成:中间层通过有序数组将整个键值空间划分为多个连续的子范围;顶层通过累积分布函数加速键值对在中间层的定位;底层存储属于每个子范围的轻量级B+Tree。当底层容量达到阈值时,ComboTree按键值大小依次进行后台扩展,同时支持前台访问。ComboTree的原型在Intel的最新非易失性内存OptaneDCPMM上实现,能够高效地支持各种键值访问操作并提升键值存储的扩展性能。相比基于非易失性内存的最新索引结构FAST&FAIR,ComboTree提升了2.9倍随机写性能和1.8倍的随机读性能。