论文标题

Corobase:面向Coroutine的主机数据库引擎

CoroBase: Coroutine-Oriented Main-Memory Database Engine

论文作者

He, Yongjun, Lu, Jiacheng, Wang, Tianzheng

论文摘要

由于使用富含指针的数据结构,数据摊位是主内存数据库引擎中的主要开销。轻量级的环境可以通过重叠的计算和异步数据预拿起预藏的软件预摘要来隐藏数据失速。但是,先前的解决方案主要集中在(1)单个组件和操作上,以及(2)需要接口更改的交易内部批处理,从而破坏了向后兼容。目前尚不清楚它们如何应用于完整的数据库引擎以及在各种工作量下带来多少端到端的好处。 本文介绍了\ Corobase,这是一种主要的内存数据库引擎,通过新的Coroutine到交易范式来应对这些挑战。 Coroutine to-transaction模型交易作为Coroutines,因此可以实现交易间批处理,避免了应用程序的变化,但保留了预取的好处。我们表明,在48核服务器上,Corobase可以在读取密集型工作负载方面表现近2倍,并且对无法从软件预取的固有受益的工作负载保持竞争力。

Data stalls are a major overhead in main-memory database engines due to the use of pointer-rich data structures. Lightweight coroutines ease the implementation of software prefetching to hide data stalls by overlapping computation and asynchronous data prefetching. Prior solutions, however, mainly focused on (1) individual components and operations and (2) intra-transaction batching that requires interface changes, breaking backward compatibility. It was not clear how they apply to a full database engine and how much end-to-end benefit they bring under various workloads. This paper presents \corobase, a main-memory database engine that tackles these challenges with a new coroutine-to-transaction paradigm. Coroutine-to-transaction models transactions as coroutines and thus enables inter-transaction batching, avoiding application changes but retaining the benefits of prefetching. We show that on a 48-core server, CoroBase can perform close to 2x better for read-intensive workloads and remain competitive for workloads that inherently do not benefit from software prefetching.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源