CoroBase: Coroutine-Oriented Main-Memory Database Engine

10/29/2020
by   Yongjun He, et al.
0

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 , 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/02/2021

Skeena: Efficient and Consistent Cross-Engine Transactions

With the growing DRAM capacity and core count in modern servers, databas...
research
04/22/2022

An Evaluation of Intra-Transaction Parallelism in Actor-Relational Database Systems

Over the past decade, we have witnessed a dramatic evolution in main-mem...
research
07/26/2021

Robustness against Read Committed for Transaction Templates

The isolation level Multiversion Read Committed (RC), offered by many da...
research
08/19/2020

LMFAO: An Engine for Batches of Group-By Aggregates

LMFAO is an in-memory optimization and execution engine for large batche...
research
05/13/2016

Efficiently making (almost) any concurrency control mechanism serializable

Concurrency control (CC) algorithms must trade off strictness for perfor...
research
01/13/2022

Robustness against Read Committed for Transaction Templates with Functional Constraints

The popular isolation level Multiversion Read Committed (RC) trades some...
research
02/11/2021

Silentium! Run-Analyse-Eradicate the Noise out of the DB/OS Stack

When multiple tenants compete for resources, database performance tends ...

Please sign up or login with your details

Forgot password? Click here to reset