泛读笔记:《GPHash: An Efficient Hash Index for GPU with Byte-Granularity Persistent Memory》

阅读文章 +

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

阅读文章 +

泛读笔记:《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)潜力巨大。本文列出了构建分布式共享内存数据库将会遇到的挑战。

阅读文章 +

CMU15-721 Note4 | Query Execution & Processing I

阅读文章 +