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支持七个协议( Silo, TicToc, MOCC, Cicada, SI, SSI, SI) 以及七个全方位优化方法,能够配置七个工作量参数。 我们利用各种工作量参数和线索计数 224 分析了协议和优化方法。 先前的研究侧重于线缩缩缩,没有在这里分析空间。 我们根据三个性能因素对优化方法进行了分类: CPU 缓存、 冲突延迟和版本寿命。 使用 CCBench 和 224 线的分析, 产生了六种洞见。 (I1) 仅读取基本工作量的乐观同值控制协议的性能迅速降低,即使L3 缓存出现误差。 (I2) SIlo可以使用隐性读的读缩缩略微缩微缩微缩微缩微缩微缩微缩微缩微缩微缩微缩略图(I) 。 (I3) 两种解决冲突的方法的效力取决于情况。 (I4) 我们CCC读了同一记录,如果同时进行交易中断分析,那么,则阅读,则会读进行一次。