Skip to content

sfu-dis/skeena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Skeena: Efficient and Consistent Cross-Engine Transactions

Skeena enables consistent ACID cross-engine transactions over two database engines (e.g., storage-centric InnoDB and memory-optimized ERMIA, both in MySQL) without intrusive changes to individual engines.

This repository implements Skeena. See details in our SIGMOD 2022 paper below. If you use our work, please cite:

Skeena: Efficient and Consistent Cross-Engine Transactions.
Jianqiu Zhang, Kaisong Huang, Tianzheng Wang and King Lv.
ACM SIGMOD/PODS International Conference on Management of Data 2022

The implementation integrates the ERMIA (SIGMOD 2016) main-memory database engine into MySQL alongside with its default InnoDB engine to enable cross-engine transactions.

Directory structure and notable source files:

  • mysql/ - modified MySQL to support ERMIA and Skeena
  • mysql/storage/innobase/trx/trx0trx.cc - modified InnoDB transaction code for snapshot selection
  • mysql/sql/gtt.{h,cc} - core Skeena implementation

Build ERMIA:

  • Follow sample instructions in ermia/README.md

Build MySQL:

  • Follow sample instructions under mysql/ermia-contrib/BUILD

Environment:

  • MySQL settings: follow the mysql/ermia-contrib/my.cnf file and put it in your ~/.my.cnf
  • Useful variables in my.cnf:
    • ermia-ermia-log-dir: Path to the ERMIA engine log dir
    • ermia-gtt-recycle-capacity: The size of each GTT(CSR) Tree
    • ermia-gtt-recycle-threshold: The threshold to trigger the recycle
  • To start MySQL Server: ./build/bin/mysqld

Experiments:

  • All scripts are stored under mysql/ermia-contrib
    • Microbenchmark: see the mysql/ermia-contrib/skeena-benchrunner folder
    • TPC-C: see ermia-contrib/tpcc/README and check the scripts there

About

Skeena: Efficient and Consistent Cross-Engine Transactions (SIGMOD 2022, ACM SIGMOD Research Highlights Award 2022)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published