Skeena: Efficient and Consistent Cross-Engine Transactions

08/02/2021
by   Jianqiu Zhang, et al.
0

With the growing DRAM capacity and core count in modern servers, database systems are becoming increasingly multi-engine to feature a heterogeneous set of engines. In particular, a memory-optimized engine and a conventional storage-centric engine may coexist for various application needs. However, handling cross-engine transactions that access more than one engine remains challenging in terms of correctness, performance and programmability. This paper describes Skeena, a holistic approach to cross-engine transactions. We propose a lightweight transaction tracking structure and an atomic commit protocol to ensure correctness and support various isolation levels in multi-engine systems. Evaluation on a 40-core server shows that Skeena (1) does not penalize single-engine transactions and (2) enables the use of cross-engine transactions to improve throughput by up to 30x and/or reduce storage cost by judiciously placing tables in different engines.

READ FULL TEXT
research
10/29/2020

CoroBase: Coroutine-Oriented Main-Memory Database Engine

Data stalls are a major overhead in main-memory database engines due to ...
research
03/19/2018

AISC: Approximate Instruction Set Computer

This paper makes the case for a single-ISA heterogeneous computing platf...
research
05/13/2016

Efficiently making (almost) any concurrency control mechanism serializable

Concurrency control (CC) algorithms must trade off strictness for perfor...
research
04/11/2020

Adaptive HTAP through Elastic Resource Scheduling

Modern Hybrid Transactional/Analytical Processing (HTAP) systems use an ...
research
11/29/2021

Verifying Transactional Consistency of MongoDB

MongoDB is a popular general-purpose, document-oriented, distributed NoS...
research
10/04/2021

Weakly Durable High-Performance Transactions

Existing disk-based database systems largely fall into two categories – ...

Please sign up or login with your details

Forgot password? Click here to reset