{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T20:57:30Z","timestamp":1780952250062,"version":"3.54.1"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T00:00:00Z","timestamp":1780876800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"DOI":"10.13039\/100008398","name":"Villum Fonden","doi-asserted-by":"publisher","award":["VIL42117"],"award-info":[{"award-number":["VIL42117"]}],"id":[{"id":"10.13039\/100008398","id-type":"DOI","asserted-by":"publisher"}]},{"name":"STIBOFONDEN","award":["N\/A"],"award-info":[{"award-number":["N\/A"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2026,6,8]]},"abstract":"<jats:p>\n                    Atomicity is a fundamental abstraction in concurrency, specifying that program behavior can be understood by considering specific code blocks executing atomically. However, atomicity invariants are tricky to maintain while also optimizing for code efficiency, and atomicity violations are a common root cause of many concurrency bugs. To address this problem, several dynamic techniques have been developed for testing whether a program execution adheres to an atomicity specification, most often instantiated as\n                    <jats:italic toggle=\"yes\">conflict serializability<\/jats:italic>\n                    . The efficiency of the analysis has been targeted in various papers, with the state-of-the-art algorithms RegionTrack and Aerodrome achieving a time complexity\n                    <jats:italic toggle=\"yes\">O<\/jats:italic>\n                    (\n                    <jats:italic toggle=\"yes\">nk<\/jats:italic>\n                    <jats:sup>3<\/jats:sup>\n                    ) and\n                    <jats:italic toggle=\"yes\">O<\/jats:italic>\n                    (\n                    <jats:italic toggle=\"yes\">nk<\/jats:italic>\n                    (\n                    <jats:italic toggle=\"yes\">k<\/jats:italic>\n                    +\n                    <jats:italic toggle=\"yes\">v<\/jats:italic>\n                    + \u2113)), respectively, for a trace \u03c3 of\n                    <jats:italic toggle=\"yes\">n<\/jats:italic>\n                    events,\n                    <jats:italic toggle=\"yes\">k<\/jats:italic>\n                    threads,\n                    <jats:italic toggle=\"yes\">v<\/jats:italic>\n                    locations, and \u2113 locks.\n                  <\/jats:p>\n                  <jats:p>\n                    In this paper we introduce AtomSanitizer, a new algorithm for testing conflict serializability, with time complexity\n                    <jats:italic toggle=\"yes\">O<\/jats:italic>\n                    (\n                    <jats:italic toggle=\"yes\">nk<\/jats:italic>\n                    <jats:sup>2<\/jats:sup>\n                    ). AtomSanitizer operates in an efficient streaming style, is theoretically faster than all existing algorithms, and also has a smaller memory footprint. Moreover, AtomSanitizer is the first algorithm designed to incur minimal locking when deployed in a concurrent monitoring setting. Experiments on standard benchmarks indicate that AtomSanitizer is always faster in practice than all existing conflict-serializability testers. Finally, we also implement AtomSanitizer inside the TSAN framework, for monitoring atomicity in real time. Our experiments reveal that AtomSanitizer incurs minimal time and space overhead compared to the data-race detection engine of TSAN, and thus is the first algorithm for conflict serializability demonstrated to be suitable for a runtime monitoring setting.\n                  <\/jats:p>","DOI":"10.1145\/3808248","type":"journal-article","created":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T18:04:09Z","timestamp":1780941849000},"page":"29-52","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Fast Atomicity Monitoring"],"prefix":"10.1145","volume":"10","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9125-8506","authenticated-orcid":false,"given":"H\u00fcnkar Can","family":"Tun\u00e7","sequence":"first","affiliation":[{"name":"Uber, Amsterdam, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-0696-839X","authenticated-orcid":false,"given":"Yifan","family":"Dong","sequence":"additional","affiliation":[{"name":"Aarhus University, Aarhus, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8943-0722","authenticated-orcid":false,"given":"Andreas","family":"Pavlogiannis","sequence":"additional","affiliation":[{"name":"Aarhus University, Aarhus, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,6,8]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3729328"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1999.2847"},{"key":"e_1_2_1_3_1","unstructured":"Shane Bester. 2008. Atomicity violation leading to crash in MySQL 6.0.7. https:\/\/bugs.mysql.com\/bug.php?id=38816"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360591"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594323"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167515.1167488"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2544173.2509519"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168918.1168866"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3627703.3650080"},{"key":"e_1_2_1_10_1","unstructured":"Jeremy Cole. 2008. Atomicity violation leading to crash in MySQL 5.4.3. https:\/\/bugs.mysql.com\/bug.php?id=38883"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158113"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","unstructured":"Azadeh Farzan and P. Madhusudan. 2008. Monitoring Atomicity in Concurrent Programs. In Computer Aided Verification Aarti Gupta and Sharad Malik (Eds.). Springer Berlin Heidelberg. 52\u201365. isbn:978-3-540-70545-1 https:\/\/doi.org\/10.1007\/978-3-540-70545-1_8 10.1007\/978-3-540-70545-1_8","DOI":"10.1007\/978-3-540-70545-1_8"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/982962.964023"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542490"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1377492.1377495"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375618"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/780822.781169"},{"key":"e_1_2_1_18_1","unstructured":"Jocelyn Fournier. 2004. Atomicity violation leading to crash in MySQL 4.1.2. https:\/\/bugs.mysql.com\/bug.php?id=3596"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00224-002-1046-6"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3503222.3507766"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2746539.2746609"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.CONCUR.2021.16"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3763123"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009857"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/361227.361234"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3412377"},{"key":"e_1_2_1_29_1","volume-title":"Rapid: Dynamic Analysis for Concurrent Programs. https:\/\/github.com\/focs-lab\/rapid Accessed: 2024-12-03","author":"Mathur Umang","year":"2024","unstructured":"Umang Mathur. 2024. Rapid: Dynamic Analysis for Concurrent Programs. https:\/\/github.com\/focs-lab\/rapid Accessed: 2024-12-03"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3503222.3507734"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373718.3394783"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378475"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3742465"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855760"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/322154.322158"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1453101.1453121"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508249"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371085"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385993"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786874"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065956"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/582034.582042"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882300"},{"key":"e_1_2_1_45_1","unstructured":"H\u00fcnkar Can Tun Yifan Dong and Andreas Pavlogiannis. 2026. Fast Atomicity Monitoring. arxiv:2604.11369. arxiv:2604.11369"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3620666.3651358"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591291"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","unstructured":"H\u00fcnkar Can Tun\u00e7 Yifan Dong and Andreas Pavlogiannis. 2026. Fast Atomicity Monitoring. https:\/\/doi.org\/10.5281\/zenodo.19615809 10.5281\/zenodo.19615809","DOI":"10.5281\/zenodo.19615809"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/780822.781145"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3808248","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T19:58:56Z","timestamp":1780948736000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3808248"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,6,8]]},"references-count":49,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2026,6,8]]}},"alternative-id":["10.1145\/3808248"],"URL":"https:\/\/doi.org\/10.1145\/3808248","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,6,8]]},"assertion":[{"value":"2025-10-20","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-04-03","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-06-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}