{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,14]],"date-time":"2026-03-14T09:49:12Z","timestamp":1773481752565,"version":"3.50.1"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"9","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2023,5]]},"abstract":"<jats:p>\n            The conventional database buffer managers have two inherent sources of I\/O serialization: read stall and mutex conflict. The serialized I\/O makes storage and CPU under-utilized, limiting transaction throughput and latency. Such harm stands out on flash SSDs with asymmetric read-write speed and abundant I\/O parallelism. To make database I\/Os parallel and thus leverage the parallelism in flash SSDs, we propose a novel approach to database buffering, the\n            <jats:italic>LRU-C<\/jats:italic>\n            method. It introduces the LRU-C pointer that points to the\n            <jats:italic>least-recently-used-clean<\/jats:italic>\n            page in the LRU list. Upon a page miss, LRU-C selects the current LRU-clean page as a victim and adjusts the pointer to the next LRU-clean one in the LRU list. This way, LRU-C can avoid the I\/O serialization of read stalls. The LRU-C pointer enables two further optimizations for higher I\/O throughput:\n            <jats:italic>dynamic-batch-write<\/jats:italic>\n            and\n            <jats:italic>parallel LRU-list manipulation.<\/jats:italic>\n            The former allows the background flusher to write more dirty pages at a time, while the latter mitigates mutex-induced I\/O serializations. Experiment results from running OLTP workloads using MySQL-based LRU-C prototype on flash SSDs show that it improves transaction throughput compared to the Vanilla MySQL and the state-of-the-art WAR solution by 3x and 1.52x, respectively, and also cuts the tail latency drastically. Though LRU-C might compromise the hit ratio slightly, its increased I\/O throughput far offsets the reduced hit ratio.\n          <\/jats:p>","DOI":"10.14778\/3598581.3598605","type":"journal-article","created":{"date-parts":[[2023,7,10]],"date-time":"2023-07-10T22:19:06Z","timestamp":1689027546000},"page":"2364-2376","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["LRU-C: Parallelizing Database I\/Os for Flash SSDs"],"prefix":"10.14778","volume":"16","author":[{"given":"Bohyun","family":"Lee","sequence":"first","affiliation":[{"name":"Sungkyunkwan University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mijin","family":"An","sequence":"additional","affiliation":[{"name":"SAP Labs Korea"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sang-Won","family":"Lee","sequence":"additional","affiliation":[{"name":"Sungkyunkwan University"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,7,10]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.14778\/3538598.3538612"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3514221.3526126"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463676.2465296"},{"key":"e_1_2_1_4_1","volume-title":"https:\/\/github.com\/axboe\/fio","author":"Axboe J.","year":"2022","unstructured":"J. Axboe . Fio (flexible io tester). https:\/\/github.com\/axboe\/fio , 2022 . J. Axboe. Fio (flexible io tester). https:\/\/github.com\/axboe\/fio, 2022."},{"key":"e_1_2_1_5_1","volume-title":"The oracle universal server buffer manager","author":"Bridge W.","year":"1998","unstructured":"W. Bridge , A. Joshi , M. Keihl , T. Lahiri , J. R. Loaiza , and N. MacNaughton . The oracle universal server buffer manager . 1998 . W. Bridge, A. Joshi, M. Keihl, T. Lahiri, J. R. Loaiza, and N. MacNaughton. The oracle universal server buffer manager. 1998."},{"key":"e_1_2_1_6_1","volume-title":"Internal parallelism of flash memory-based solid-state drives. ACM Trans. Storage, 12(3), may","author":"Chen F.","year":"2016","unstructured":"F. Chen , B. Hou , and R. Lee . Internal parallelism of flash memory-based solid-state drives. ACM Trans. Storage, 12(3), may 2016 . F. Chen, B. Hou, and R. Lee. Internal parallelism of flash memory-based solid-state drives. ACM Trans. Storage, 12(3), may 2016."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2011.5749735"},{"key":"e_1_2_1_8_1","volume-title":"cloud platform. Google cloud. https:\/\/cloud.google.com\/","author":"G.","year":"2022","unstructured":"G. cloud platform. Google cloud. https:\/\/cloud.google.com\/ , 2022 . G. cloud platform. Google cloud. https:\/\/cloud.google.com\/, 2022."},{"key":"e_1_2_1_9_1","volume-title":"Buffer pool. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/innodb-buffer-pool.html","author":"M. T. M. T. O. Corp","year":"2022","unstructured":"M. T. M. T. O. Corp ). Buffer pool. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/innodb-buffer-pool.html , 2022 . M. T. M. T. O. Corp). Buffer pool. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/innodb-buffer-pool.html, 2022."},{"key":"e_1_2_1_10_1","volume-title":"Innodb checkpoints. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-checkpoints.html","author":"M. T. O. Corp","year":"2022","unstructured":"M. T. O. Corp ). Innodb checkpoints. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-checkpoints.html , 2022 . M. T. O. Corp). Innodb checkpoints. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-checkpoints.html, 2022."},{"key":"e_1_2_1_11_1","volume-title":"Monitoring innodb mutex waits using performance schema. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/monitor-innodb-mutex-waits-performance-schema.html","author":"M. T. O. Corp","year":"2022","unstructured":"M. T. O. Corp ). Monitoring innodb mutex waits using performance schema. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/monitor-innodb-mutex-waits-performance-schema.html , 2022 . M. T. O. Corp). Monitoring innodb mutex waits using performance schema. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/monitor-innodb-mutex-waits-performance-schema.html, 2022."},{"key":"e_1_2_1_12_1","volume-title":"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/","author":"M. T. O. Corp","year":"2022","unstructured":"M. T. O. Corp ). Mysql 8.0 reference manual. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/ , 2022 . M. T. O. Corp). Mysql 8.0 reference manual. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/, 2022."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2408776.2408794"},{"key":"e_1_2_1_14_1","volume-title":"CIDR","author":"Dias K.","year":"2005","unstructured":"K. Dias , M. Ramacher , U. Shaft , V. Venkataramani , and G. Wood . Automatic performance diagnosis and tuning in oracle . In CIDR , 2005 . K. Dias, M. Ramacher, U. Shaft, V. Venkataramani, and G. Wood. Automatic performance diagnosis and tuning in oracle. In CIDR, 2005."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-020-00648-z"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC47752.2019.9042073"},{"key":"e_1_2_1_17_1","volume-title":"https:\/\/github.com\/facebookarchive\/linkbench","year":"2017","unstructured":"facebookarchive. Linkbench. https:\/\/github.com\/facebookarchive\/linkbench , 2017 . facebookarchive. Linkbench. https:\/\/github.com\/facebookarchive\/linkbench, 2017."},{"key":"e_1_2_1_18_1","first-page":"119","volume-title":"Tell-Tale Tail Latencies: Pitfalls and Perils in Database Benchmarking","author":"Fruth M.","year":"2022","unstructured":"M. Fruth , S. Scherzinger , W. Mauerer , and R. Ramsauer . Tell-Tale Tail Latencies: Pitfalls and Perils in Database Benchmarking , pages 119 -- 134 . 01 2022 . M. Fruth, S. Scherzinger, W. Mauerer, and R. Ramsauer. Tell-Tale Tail Latencies: Pitfalls and Perils in Database Benchmarking, pages 119--134. 01 2022."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/573304"},{"key":"e_1_2_1_20_1","volume-title":"10th Conference on Innovative Data Systems Research, CIDR 2020","author":"Haas G.","year":"2020","unstructured":"G. Haas , M. Haubenschild , and V. Leis . Exploiting directly-attached nvme arrays in DBMS . In 10th Conference on Innovative Data Systems Research, CIDR 2020 , 2020 . G. Haas, M. Haubenschild, and V. Leis. Exploiting directly-attached nvme arrays in DBMS. In 10th Conference on Innovative Data Systems Research, CIDR 2020, 2020."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376713"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/94362.94634"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1516360.1516365"},{"key":"e_1_2_1_24_1","volume-title":"VLDB","author":"Joshi A.","year":"1998","unstructured":"A. Joshi , W. Bridge , J. R. Loaiza , and T. Lahiri . Checkpointing in oracle . In VLDB , 1998 . A. Joshi, W. Bridge, J. R. Loaiza, and T. Lahiri. Checkpointing in oracle. In VLDB, 1998."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2014.6835961"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2012.6237035"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385073"},{"key":"e_1_2_1_28_1","volume-title":"2022 cloud report. https:\/\/www.cockroachlabs.com\/guides\/2022-cloud-report\/#form","author":"Labs C.","year":"2022","unstructured":"C. Labs . 2022 cloud report. https:\/\/www.cockroachlabs.com\/guides\/2022-cloud-report\/#form , 2022 . C. Labs. 2022 cloud report. https:\/\/www.cockroachlabs.com\/guides\/2022-cloud-report\/#form, 2022."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2018.00026"},{"key":"e_1_2_1_30_1","volume-title":"https:\/\/azure.microsoft.com\/en-us\/","year":"2022","unstructured":"Microsoft. Azure. https:\/\/azure.microsoft.com\/en-us\/ , 2022 . Microsoft. Azure. https:\/\/azure.microsoft.com\/en-us\/, 2022."},{"key":"e_1_2_1_31_1","volume-title":"Configuring buffer pool flushing. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-buffer-pool-flushing.html","author":"MySQL Team (Oracle Corp.","year":"2023","unstructured":"MySQL Team (Oracle Corp. ). Configuring buffer pool flushing. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-buffer-pool-flushing.html , 2023 . MySQL Team (Oracle Corp.). Configuring buffer pool flushing. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-buffer-pool-flushing.html, 2023."},{"key":"e_1_2_1_32_1","volume-title":"Optimizing innodb disk i\/o. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/optimizing-innodb-diskio.html","author":"MySQL Team (Oracle Corp.","year":"2023","unstructured":"MySQL Team (Oracle Corp. ). Optimizing innodb disk i\/o. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/optimizing-innodb-diskio.html , 2023 . MySQL Team (Oracle Corp.). Optimizing innodb disk i\/o. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/optimizing-innodb-diskio.html, 2023."},{"key":"e_1_2_1_33_1","volume-title":"Server system variable reference. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variable-reference.html","author":"MySQL Team (Oracle Corp.","year":"2023","unstructured":"MySQL Team (Oracle Corp. ). Server system variable reference. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variable-reference.html , 2023 . MySQL Team (Oracle Corp.). Server system variable reference. https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variable-reference.html, 2023."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2010.209"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2013.52"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176760.1176789"},{"key":"e_1_2_1_37_1","volume-title":"tpcc-mysql. https:\/\/github.com\/Percona-Lab\/tpcc-mysql","year":"2018","unstructured":"Percona. tpcc-mysql. https:\/\/github.com\/Percona-Lab\/tpcc-mysql , 2018 . Percona. tpcc-mysql. https:\/\/github.com\/Percona-Lab\/tpcc-mysql, 2018."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/560733"},{"key":"e_1_2_1_39_1","volume-title":"Wal in postgresql: 3. checkpoint. https:\/\/postgrespro.com\/blog\/pgsql\/5967965","author":"Rogov E.","year":"2022","unstructured":"E. Rogov . Wal in postgresql: 3. checkpoint. https:\/\/postgrespro.com\/blog\/pgsql\/5967965 , 2022 . E. Rogov. Wal in postgresql: 3. checkpoint. https:\/\/postgrespro.com\/blog\/pgsql\/5967965, 2022."},{"key":"e_1_2_1_40_1","unstructured":"P. Server. Xtradb performance improvements for i\/o-bound highly-concurrent workloads. https:\/\/www.percona.com\/doc\/percona-server\/5.6\/performance\/xtradb_performance_improvements_for_io-bound_highly-concurrent_workloads.html#xtradb-performance-improvements-for-io-bound-highly-concurrent-workloads 2022.  P. Server. Xtradb performance improvements for i\/o-bound highly-concurrent workloads. https:\/\/www.percona.com\/doc\/percona-server\/5.6\/performance\/xtradb_performance_improvements_for_io-bound_highly-concurrent_workloads.html#xtradb-performance-improvements-for-io-bound-highly-concurrent-workloads 2022."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/1182635.1164220"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.232.0211"},{"key":"e_1_2_1_43_1","volume-title":"Postgresql 11 documentation: Resource consumption. https:\/\/www.postgresql.org\/docs\/current\/runtime-config-resource.html","author":"The PostgreSQL Global Development Group","year":"2019","unstructured":"The PostgreSQL Global Development Group . Postgresql 11 documentation: Resource consumption. https:\/\/www.postgresql.org\/docs\/current\/runtime-config-resource.html , 2019 . The PostgreSQL Global Development Group. Postgresql 11 documentation: Resource consumption. https:\/\/www.postgresql.org\/docs\/current\/runtime-config-resource.html, 2019."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064029"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.5555\/2208461.2208471"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/2208461.2208471"},{"key":"e_1_2_1_47_1","volume-title":"Staring into the abyss: An evaluation of concurrency control with one thousand cores. 8(3):209--220, nov","author":"Yu X.","year":"2014","unstructured":"X. Yu , G. Bezerra , A. Pavlo , S. Devadas , and M. Stonebraker . Staring into the abyss: An evaluation of concurrency control with one thousand cores. 8(3):209--220, nov 2014 . X. Yu, G. Bezerra, A. Pavlo, S. Devadas, and M. Stonebraker. Staring into the abyss: An evaluation of concurrency control with one thousand cores. 8(3):209--220, nov 2014."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3598581.3598605","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,7,19]],"date-time":"2023-07-19T22:58:44Z","timestamp":1689807524000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3598581.3598605"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,5]]},"references-count":47,"journal-issue":{"issue":"9","published-print":{"date-parts":[[2023,5]]}},"alternative-id":["10.14778\/3598581.3598605"],"URL":"https:\/\/doi.org\/10.14778\/3598581.3598605","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2023,5]]},"assertion":[{"value":"2023-07-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}