{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,21]],"date-time":"2026-02-21T14:55:16Z","timestamp":1771685716941,"version":"3.50.1"},"reference-count":65,"publisher":"Association for Computing Machinery (ACM)","issue":"13","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2020,9]]},"abstract":"<jats:p>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. 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.<\/jats:p>","DOI":"10.14778\/3424573.3424575","type":"journal-article","created":{"date-parts":[[2020,10,28]],"date-time":"2020-10-28T01:15:32Z","timestamp":1603847732000},"page":"3531-3544","source":"Crossref","is-referenced-by-count":38,"title":["An analysis of concurrency control protocols for in-memory databases with CCBench"],"prefix":"10.14778","volume":"13","author":[{"given":"Takayuki","family":"Tanabe","sequence":"first","affiliation":[{"name":"NAUTILUS Technologies, Inc."}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Takashi","family":"Hoshino","sequence":"additional","affiliation":[{"name":"Cybozu Labs, Inc."}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hideyuki","family":"Kawashima","sequence":"additional","affiliation":[{"name":"Keio University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Osamu","family":"Tatebe","sequence":"additional","affiliation":[{"name":"University of Tsukuba"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,10,27]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"CCBench Developer Guide. https:\/\/github.com\/thawk105\/ccbench\/tree\/master\/cc_format.  CCBench Developer Guide. https:\/\/github.com\/thawk105\/ccbench\/tree\/master\/cc_format."},{"key":"e_1_2_1_2_1","unstructured":"CCBench Experimental Data. https:\/\/github.com\/thawk105\/ccdata.  CCBench Experimental Data. https:\/\/github.com\/thawk105\/ccdata."},{"key":"e_1_2_1_3_1","unstructured":"CCBench OCC. https:\/\/github.com\/thawk105\/ccbench\/tree\/master\/occ.  CCBench OCC. https:\/\/github.com\/thawk105\/ccbench\/tree\/master\/occ."},{"key":"e_1_2_1_4_1","unstructured":"Code of Cavalia. https:\/\/github.com\/Cavalia.  Code of Cavalia. https:\/\/github.com\/Cavalia."},{"key":"e_1_2_1_5_1","unstructured":"Code of CCBench. https:\/\/github.com\/thawk105\/ccbench.  Code of CCBench. https:\/\/github.com\/thawk105\/ccbench."},{"key":"e_1_2_1_6_1","unstructured":"Code of DBx1000. https:\/\/github.com\/yxymit\/DBx1000.  Code of DBx1000. https:\/\/github.com\/yxymit\/DBx1000."},{"key":"e_1_2_1_7_1","unstructured":"Code of Masstree. https:\/\/github.com\/kohler\/masstree-beta.  Code of Masstree. https:\/\/github.com\/kohler\/masstree-beta."},{"key":"e_1_2_1_8_1","unstructured":"Code of Peloton. https:\/\/pelotondb.io.  Code of Peloton. https:\/\/pelotondb.io."},{"key":"e_1_2_1_9_1","unstructured":"gflags. https:\/\/github.com\/gflags\/gflags.  gflags. https:\/\/github.com\/gflags\/gflags."},{"key":"e_1_2_1_10_1","unstructured":"How to Extend CCBench. https:\/\/medium.com\/@jnmt.  How to Extend CCBench. https:\/\/medium.com\/@jnmt."},{"key":"e_1_2_1_11_1","unstructured":"mimalloc. https:\/\/github.com\/microsoft\/mimalloc.  mimalloc. https:\/\/github.com\/microsoft\/mimalloc."},{"key":"e_1_2_1_12_1","unstructured":"The Transaction Processing Council. TPC-C Benchmark (Revision 5.11) February 2011.  The Transaction Processing Council. TPC-C Benchmark (Revision 5.11) February 2011."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/3167892.3167893"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3399666.3399910"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/320141.320146"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/568271.223785"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/356842.356846"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/12518"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2465351.2465373"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3035919"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732240.2732246"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.14778\/3282495.3282502"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2019.00071"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/360363.360369"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.14778\/3055540.3055553"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/191843.191886"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.14778\/3303753.3303763"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.14778\/3055540.3055548"},{"issue":"5","key":"e_1_2_1_29_1","first-page":"629","volume":"13","author":"Huang Y.","year":"2020","unstructured":"Y. Huang , W. Qian , E. Kohler , B. Liskov , and L. Shrira . Opportunities for Optimism in Contended Main-Memory Multicore Transactions. PVLDB , 13 ( 5 ): 629 -- 642 , 2020 . Y. Huang, W. Qian, E. Kohler, B. Liskov, and L. Shrira. Opportunities for Optimism in Contended Main-Memory Multicore Transactions. PVLDB, 13(5):629--642, 2020.","journal-title":"Opportunities for Optimism in Contended Main-Memory Multicore Transactions. PVLDB"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.14778\/1920841.1920928"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37450-0_31"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2882905"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2746480"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.14778\/2095686.2095689"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064015"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168855"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1066650.1066660"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/109626.109637"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/645478.654954"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.15803\/ijnc.9.2_339"},{"key":"e_1_2_1_41_1","unstructured":"S. Nakazono H. Uchiyama Y. Fujiwara Y. Nakamura and H. Kawashima. NWR: Rethinking Thomas Write Rule for Omittable Write Operations. http:\/\/arxiv.org\/abs\/1904.08119 2020.  S. Nakazono H. Uchiyama Y. Fujiwara Y. Nakamura and H. Kawashima. NWR: Rethinking Thomas Write Rule for Omittable Write Operations. http:\/\/arxiv.org\/abs\/1904.08119 2020."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2749436"},{"key":"e_1_2_1_43_1","volume-title":"CIDR","author":"Pavlo A.","year":"2017","unstructured":"A. Pavlo , G. Angulo , J. Arulraj , H. Lin , J. Lin , L. Ma , P. Menon , T. C. Mowry , M. Perron , I. Quah , S. Santurkar , A. Tomasic , S. Toor , D. V. Aken , Z. Wang , Y. Wu , R. Xian , and T. Zhang . Self-Driving Database Management Systems . In CIDR , 2017 . A. Pavlo, G. Angulo, J. Arulraj, H. Lin, J. Lin, L. Ma, P. Menon, T. C. Mowry, M. Perron, I. Quah, S. Santurkar, A. Tomasic, S. Toor, D. V. Aken, Z. Wang, Y. Wu, R. Xian, and T. Zhang. Self-Driving Database Management Systems. In CIDR, 2017."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3318464.3389764"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/320251.320260"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/568014.379566"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3329859.3329871"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/582318.582330"},{"key":"e_1_2_1_49_1","unstructured":"T. Tanabe T. Hoshino H. Kawashima and O. Tatebe. An Analysis of Concurrency Control Protocols for In-Memory Databases with CCBench (Extended Version). http:\/\/arxiv.org\/abs\/2009.11558 2020.  T. Tanabe T. Hoshino H. Kawashima and O. Tatebe. An Analysis of Concurrency Control Protocols for In-Memory Databases with CCBench (Extended Version). http:\/\/arxiv.org\/abs\/2009.11558 2020."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/SMARTCOMP.2018.00018"},{"key":"e_1_2_1_51_1","volume-title":"One Concurrency Control Does Not Fit All. In CIDR","author":"Tang D.","year":"2017","unstructured":"D. Tang , H. Jiang , and A. J. Elmore . Adaptive Concurrency Control: Despite the Looking Glass , One Concurrency Control Does Not Fit All. In CIDR , 2017 . D. Tang, H. Jiang, and A. J. Elmore. Adaptive Concurrency Control: Despite the Looking Glass, One Concurrency Control Does Not Fit All. In CIDR, 2017."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/320071.320076"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522713"},{"key":"e_1_2_1_54_1","unstructured":"C. Wang K. Huang and X. Qian. A Comprehensive Evaluation of RDMA-enabled Concurrency Control Protocols. http:\/\/arxiv.org\/abs\/2002.12664 2020.  C. Wang K. Huang and X. Qian. A Comprehensive Evaluation of RDMA-enabled Concurrency Control Protocols. http:\/\/arxiv.org\/abs\/2002.12664 2020."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2771937.2771949"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-017-0463-8"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.14778\/3015274.3015276"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2882934"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.5555\/378243"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.14778\/3067421.3067427"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2915202"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.5555\/3026959.3026993"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.14778\/2735508.2735511"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2882935"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.14778\/2904121.2904126"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3424573.3424575","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:17:57Z","timestamp":1672219077000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3424573.3424575"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,9]]},"references-count":65,"journal-issue":{"issue":"13","published-print":{"date-parts":[[2020,9]]}},"alternative-id":["10.14778\/3424573.3424575"],"URL":"https:\/\/doi.org\/10.14778\/3424573.3424575","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2020,9]]}}}