泛读笔记:《Rethink Query Optimization in HTAP Databases》


Paper

摘要

数据密集型应用的出现推动了HTAP的发展。为了支持混合负载,分布式 HTAP 数据库通常会维护两个专门针对数据新鲜度和性能隔离而设计的数据副本。具体而言,一份按行存储的数据副本适合 OLTP(联机事务处理)工作负载,而另一份按列存储的数据副本则针对 OLAP(联机分析处理)工作负载进行了优化。这种混合设计为查询优化打开了一个新的设计空间:查询计划可以在不同的数据格式之间进行优化,并在隔离的资源上执行,我们将其称为“混合计划(hybrid plans)”。在本文中,我们展示了混合计划在查询执行中可以带来显著收益(例如,在我们的评估中最多实现 11 倍的加速)。然而,我们也发现,这些收益可能以牺牲数据新鲜度或性能隔离为代价,因为传统优化器可能无法精确建模和调度在实时更新的 HTAP 数据库中执行的混合计划。为此,我们提出了一种 HTAP 感知的优化器——Metis。我们从理论和实验两个方面表明,采用所提出的优化技术,系统不仅可以大幅受益于混合计划,同时还能保持 OLTP 和 OLAP 的性能隔离,而且这些优化在面对工作负载变化时也具有鲁棒性。

阅读文章 +

泛读笔记:《Deploying Computational Storage for HTAP DBMSs Takes More Than Just Computation Offloading》


Paper

摘要

阅读文章 +

泛读笔记:《BonsaiKV: Towards Fast, Scalable, and Persistent Key-Value Stores with Tiered, Heterogeneous Memory System》


Paper

摘要

新兴的基于NUMA/CXL的分层内存系统具有异构内存设备(如DRAM和NVMM),可同时提供超快速度、大容量和数据持久性,为高性能内存键值存储提供了巨大的希望。为了充分释放此类内存系统的性能潜力,本文介绍了BonsaiKV,这是一种键值存储,可以充分利用分层内存系统中的不同组件。BonsaiKV的核心是一个三层分层存储架构,它将数据索引,持久性和可扩展性相互分离,并在专门的软件-硬件层中实现它们。我们设计BonsaiKV与一组新的技术,包括协作分层索引,NVMM拥塞控制机制,细粒度的数据条带化,和NUMA感知的数据管理,利用硬件的优势和解决设备的缺陷。我们使用各种YCSB工作负载将BonsaiKV与最先进的NVMM优化的键值存储和持久化索引结构进行比较。评估结果表明,BonsaiKV在读、写和扫描密集型场景中的性能分别高达7.69×、19.59×和12.86×。

阅读文章 +

泛读笔记:《NVM: Is it Not Very Meaningful for Databases?》


Paper

摘要

持久性或非易失性存储器(PMEM)提供了扩展的存储容量和更快的持久性存储访问.然而,目前还没有对不同PMEM模式下现有的数据库引擎进行全面的实证分析,以了解数据库如何从各种硬件配置中受益.为此,我们在AppDirect模式和内存模式下使用PMEM在共同基准下分析了多个不同的引擎.我们的结果表明,尽管易失性存储器容量更大,但内存模式下的PMEM并没有提供任何明显的性能优势.此外,使用PMEM作为持久存储通常会加快查询执行,但有一些注意事项,因为I/O路径没有完全优化,因此并不总是能够证明额外的成本是合理的.我们通过对不同工作负载下不同引擎和数据库配置的综合评估证明了这一点.

阅读文章 +

泛读笔记:《Two Birds With One Stone: Designing a Hybrid Cloud Storage Engine for HTAP》


Paper

摘要

企业对最新数据的实时分析需求日益增长。然而,当前的解决方案无法在同一系统中高效地结合事务处理和分析处理,而是依赖ETL(提取-转换-加载)流程将事务数据传输到分析系统,从而导致数据洞察的延迟。

本文针对这一需求,提出了一种面向云环境的新型存储引擎设计——Colibri,该引擎支持超越主内存的混合事务与分析处理(HTAP)。Colibri 采用混合列存与行存架构,针对两种工作负载进行优化,并充分利用新兴硬件趋势。它通过有效区分冷热数据,以适应不同的访问模式和存储设备。

实验表明,在固态硬盘(SSD)和云对象存储上处理混合工作负载时,Colibri 可实现高达 10 倍的性能提升。

阅读文章 +

泛读笔记:《Designing Distributed Tree-based Index Structures for Fast RDMA-capable Networks》


Paper

摘要

在过去十年中,内存数据库系统在学术界和工业界变得十分流行。然而,大型数据集通常需要分布存储在集群中多个节点的内存中,因为它们通常无法装入单台机器的内存中。最近提出的一种用于为快速 RDMA 网络构建分布式内存数据库的数据库架构是网络附加内存 (NAM) 架构。NAM 架构在逻辑上将计算和内存服务器分开,从而为这两种资源提供独立的可扩展性。NAM 架构中的一个重要挑战是为计算节点提供有效的远程访问方法,以访问驻留在内存节点中的数据。

因此,在本文中,我们讨论了 NAM 架构中分布式树型索引结构的设计方案。本文主要关注两个方面:(1)索引本身应如何分布在多个内存服务器上;(2)计算服务器应使用哪些 RDMA 原语以最有效的方式访问分布式索引结构。我们的实验评估显示了使用各种工作负载的不同分布式索引设计方案的权衡。虽然本文的重点是 NAM 架构,但我们相信研究结果也有助于理解如何为其他基于 RDMA 的分布式数据库架构构建分布式树型索引的设计空间。

阅读文章 +

泛读笔记:《DEX: Scalable Range Indexing on Disaggregated Memory》


Paper

摘要

内存分离有可能让内存优化的范围索引(如B+树)在超出单一机器的范围内扩展,同时实现高硬件利用率和低成本。然而,在内存分离架构上设计可扩展的索引是具有挑战性的,主要是因为基础缓存、不规范的卸载以及服务器之间的一致性过度问题。

本文提出了DEX,一种新的用于内存分离的可扩展B+树。DEX包括一组减少远程访问的技术:逻辑分区、轻量级缓存和成本感知卸载。我们的评估显示,DEX可以比现有技术提高到1.7到56.3倍的性能,并且在不同的设置下,如缓存大小和数据倾斜,依然存在优势。

阅读文章 +

泛读笔记:《Towards Optimal Transaction Scheduling》


Paper

摘要

最大化事务吞吐量是高性能数据库系统的关键,高性能数据库系统关注于最小化数据访问冲突以提高性能。然而,找到有效的时间表,减少冲突仍然是一个悬而未决的问题。为了提高效率,以前的调度技术只考虑可能的时间表的一个小子集。在这项工作中,我们建议系统地探索整个时间表空间,主动识别有效的时间表,并在执行过程中精确地执行它们,以提高吞吐量。我们引入了一个贪婪的调度策略,SMF,有效地找到快速的时间表,并优于最先进的搜索技术。为了实现这些时间表在实践中的好处,我们开发了一个时间表优先的并发控制协议,MVSchedO,执行细粒度的操作顺序。我们在我们的系统R-SMF(RocksDB的修改版本)中实现了这两个功能,在一系列基准测试和实际工作负载上实现了高达3.9倍的吞吐量增加和3.2倍的尾延迟减少。

阅读文章 +

泛读笔记:《dLSM: An LSM-Based Index for Memory Disaggregation》


Paper

摘要

新兴趋势内存分离(memory disaggregation)将CPU和内存物理上分开,并通过超快的网络(如 RDMA)连接。这使得计算(CPU)和主内存可以弹性地独立扩展。本文研究了如何在内存分离架构中高效设计索引。虽然现有的研究已对B树进行了优化,但其性能仍然一般。本文重点关注基于LSM树的索引,并提出了dLSM,这是首个针对分离内存高度优化的LSM树。dLSM引入了一系列优化措施,包括减少软件开销、利用近数据计算、针对字节寻址进行调优,以及以RDMA为例进行的定制化实现,以提升系统性能。实验结果表明,dLSM的写入吞吐量是优化后的B树和四种现有LSM树索引在分离内存上的适配的1.6到11.7倍。dLSM使用C++编写(约41,000行代码),并且是开源的。

阅读文章 +

泛读笔记:《The Case for Distributed Shared-Memory Databases with RDMA-Enabled Memory Disaggregation》


Paper

摘要

内存解耦(Memory Disaggregation,简称MD)通过将计算(CPU)与内存分离,允许数据中心设计实现可扩展性和弹性。在MD架构下,计算和内存不再被耦合到同一个服务器中,而是通过诸如RDMA(远程直接内存访问)等超高速网络相互连接。MD带来了许多优势,例如更高的内存利用率、更好的独立扩展(计算和内存的独立扩展)以及更低的拥有成本。分布式共享内存数据库(DSM-DB)潜力巨大。本文列出了构建分布式共享内存数据库将会遇到的挑战。

阅读文章 +