当前位置: X-MOL 学术arXiv.cs.DB › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An Analysis of Concurrency Control Protocols for In-Memory Databases with CCBench (Extended Version)
arXiv - CS - Databases Pub Date : 2020-09-24 , DOI: arxiv-2009.11558
Takayuki Tanabe, Takashi Hoshino, Hideyuki Kawashima, Osamu Tatebe

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.

中文翻译:

CCBench内存数据库并发控制协议分析(扩展版)

本文介绍了另一个并发控制分析平台 CCBench。CCBench 支持七种协议(Silo、TicToc、MOCC、Cicada、SI、SI with latch-free SSN、2PL)和七种通用优化方法,并支持配置七种工作负载参数。我们使用各种工作负载参数和 224 个线程数分析了协议和优化方法。之前的研究侧重于线程可扩展性,并没有探索这里分析的空间。我们根据三个性能因素对优化方法进行分类:CPU 缓存、冲突延迟和版本寿命。使用 CCBench 和 224 个线程进行分析,产生了六个见解。(I1) 即使没有 L3 缓存未命中,只读工作负载的乐观并发控制协议的性能也会随着基数的增加而迅速降低。(I2) Silo 可以通过使用隐形读取优化来胜过某些写入密集型工作负载的 TicToc。(I3) 两种处理冲突的方法(等待和不等待)的有效性取决于情况。(I4) 如果发生并发事务中断,OCC 读取同一条记录两次或多次,可以提高性能。(I5) 混合不同的实现不适合深入分析。(I6) 如果工作负载中混入了单个长事务,即使是最先进的垃圾收集方法也无法提高多版本协议的性能。在 I4 的基础上,我们定义了读取阶段扩展优化,其中在读取阶段添加了人工延迟。在 I6 的基础上,我们定义了激进的垃圾收集优化,其中甚至收集可见版本。
更新日期:2020-09-25
down
wechat
bug