论文标题

使用CCBENCH(扩展版)的内存数据库的并发控制协议分析

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

论文作者

Tanabe, Takayuki, Hoshino, Takashi, Kawashima, Hideyuki, Nemoto, Jun, Tanaka, Masahiro, Tatebe, Osamu

论文摘要

本文提出了另一个并发控制分析平台CCBench。 CCBENCH支持七个协议(Silo,Tictoc,Mocc,Cicada,Si,Si,si,si,si,si,无闩锁SSN,2PL)和七种多功能优化方法,并启用七个工作负载参数的配置。我们使用各种工作负载参数分析了协议和优化方法,并且线程计数为224。我们根据三个绩效因素对优化方法进行了分类:CPU缓存,冲突延迟和版本寿命。使用CCBENCH和224个线程进行分析,产生了六个见解。 (i1)仅读取工作负载的乐观并发控制协议的性能即使在没有L3缓存失误的情况下,随着基数增加也会迅速降低。 (i2)通过使用隐形读取优化,筒仓可以胜过某些写入密集型工作负载的Tictoc。 (i3)两种应对冲突(等待和等待)的有效性取决于情况。 (i4)如果发生并发交易中断,OCC将读取相同的记录两次或更多次,这可以提高性能。 (i5)混合不同的实现不适用于深入分析。 (i6)即使是最先进的垃圾收集方法,如果将单个长交易混合在工作负载中,则无法提高多转换协议的性能。根据i4,我们定义了读取阶段扩展优化,其中将人工延迟添加到读取阶段。在i6的基础上,我们定义了侵略性垃圾收集优化,其中甚至可见版本也被收集。 CCBENCH和本文中所有数据的代码可在GitHub在线获得。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源