An Analysis of Concurrency Control Protocols for In-Memory Databases with CCBench (Extended Version)

09/24/2020
by   Takayuki Tanabe, et al.
0

This paper presents yet another concurrency control analysis platform, CCBench. CCBench supports seven protocols (Silo, TicToc, MOCC, Cicada, SI, SI with latch-free SSN, 2PL) and seven versatile optimization methods and enables the configuration of seven workload parameters. We analyzed the protocols and optimization methods using various workload parameters and a thread count of 224. Previous studies focused on thread scalability and did not explore the space analyzed here. We classified the optimization methods on the basis of three performance factors: CPU cache, delay on conflict, and version lifetime. Analyses using CCBench and 224 threads, produced six insights. (I1) The performance of optimistic concurrency control protocol for a read only workload rapidly degrades as cardinality increases even without L3 cache misses. (I2) Silo can outperform TicToc for some write-intensive workloads by using invisible reads optimization. (I3) The effectiveness of two approaches to coping with conflict (wait and no-wait) depends on the situation. (I4) OCC reads the same record two or more times if a concurrent transaction interruption occurs, which can improve performance. (I5) Mixing different implementations is inappropriate for deep analysis. (I6) Even a state-of-the-art garbage collection method cannot improve the performance of multi-version protocols if there is a single long transaction mixed into the workload. On the basis of I4, we defined the read phase extension optimization in which an artificial delay is added to the read phase. On the basis of I6, we defined the aggressive garbage collection optimization in which even visible versions are collected. The code for CCBench and all the data in this paper are available online at GitHub.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/24/2023

Knock Out 2PC with Practicality Intact: a High-performance and General Distributed Transaction Protocol (Technical Report)

Two-phase-commit (2PC) has been widely adopted for distributed transacti...
research
01/25/2023

Scheduling Space Expander: An Extension of Concurrency Control for Data Ingestion Queries

With the continuing advances of sensing devices and IoT/Telecom applicat...
research
03/17/2021

Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking (Extended Version)

Hotspots, a small set of tuples frequently read/written by a large numbe...
research
03/09/2018

Persistent Memory Transactions

This paper presents a comprehensive analysis of performance trade offs b...
research
02/17/2023

Detecting Robustness against MVRC for Transaction Programs with Predicate Reads

The transactional robustness problem revolves around deciding whether, f...
research
12/01/2019

Evaluating Reliability of SSD-Based I/O Caches in Enterprise Storage Systems

In this paper, we present a comprehensive analysis investigating the rel...

Please sign up or login with your details

Forgot password? Click here to reset