{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:19:56Z","timestamp":1750220396302,"version":"3.41.0"},"reference-count":62,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2021,5,30]],"date-time":"2021-05-30T00:00:00Z","timestamp":1622332800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100016682","name":"VMware","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100016682","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Intel"},{"DOI":"10.13039\/100016822","name":"Seagate","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100016822","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Samsung"},{"name":"NSF","award":["CNS-1421033, CNS-1763810, and CNS-1838733"],"award-info":[{"award-number":["CNS-1421033, CNS-1763810, and CNS-1838733"]}]},{"name":"DOE","award":["DE-SC0014935"],"award-info":[{"award-number":["DE-SC0014935"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Storage"],"published-print":{"date-parts":[[2021,5,30]]},"abstract":"<jats:p>\n            We analyze how file systems and modern data-intensive applications react to\n            <jats:monospace>fsync<\/jats:monospace>\n            failures. First, we characterize how three Linux file systems (ext4, XFS, Btrfs) behave in the presence of failures. We find commonalities across file systems (pages are always marked clean, certain block writes always lead to unavailability) as well as differences (page content and failure reporting is varied). Next, we study how five widely used applications (PostgreSQL, LMDB, LevelDB, SQLite, Redis) handle\n            <jats:monospace>fsync<\/jats:monospace>\n            failures. Our findings show that although applications use many failure-handling strategies, none are sufficient:\n            <jats:monospace>fsync<\/jats:monospace>\n            failures can cause catastrophic outcomes such as data loss and corruption. Our findings have strong implications for the design of file systems and applications that intend to provide strong durability guarantees.\n          <\/jats:p>","DOI":"10.1145\/3450338","type":"journal-article","created":{"date-parts":[[2021,6,16]],"date-time":"2021-06-16T00:21:48Z","timestamp":1623802908000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Can Applications Recover from\n            <b>\n              <tt>fsync<\/tt>\n            <\/b>\n            Failures?"],"prefix":"10.1145","volume":"17","author":[{"given":"Anthony","family":"Rebello","sequence":"first","affiliation":[{"name":"University of Wisconsin\u2013Madison, Madison, WI, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yuvraj","family":"Patel","sequence":"additional","affiliation":[{"name":"University of Wisconsin\u2013Madison, Madison, WI, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ramnatthan","family":"Alagappan","sequence":"additional","affiliation":[{"name":"VMware Research Group, Madison, WI, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrea C.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin\u2013Madison, Madison, WI, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Remzi H.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin\u2013Madison, Madison, WI, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,6,15]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"SQLite. 2020. Atomic Commit in SQLite. Retrieved from https:\/\/www.sqlite.org\/atomiccommit.html.  SQLite. 2020. Atomic Commit in SQLite. Retrieved from https:\/\/www.sqlite.org\/atomiccommit.html."},{"key":"e_1_2_1_2_1","unstructured":"Anthony Rebello. 2020. Bug-207729 Mounting EXT4 with data_err=abort does not abort journal on data block write failure. Retrieved from https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=207729.  Anthony Rebello. 2020. Bug-207729 Mounting EXT4 with data_err=abort does not abort journal on data block write failure. Retrieved from https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=207729."},{"key":"e_1_2_1_3_1","unstructured":"Allen Lai. 2020. Bug-27805553 HARD ERROR SHOULD BE REPORTED WHEN FSYNC() RETURN EIO. Retrieved from https:\/\/github.com\/mysql\/mysql-server\/commit\/8590c8e12a3374eeccb547359750a9d2a128fa6a.  Allen Lai. 2020. Bug-27805553 HARD ERROR SHOULD BE REPORTED WHEN FSYNC() RETURN EIO. Retrieved from https:\/\/github.com\/mysql\/mysql-server\/commit\/8590c8e12a3374eeccb547359750a9d2a128fa6a."},{"key":"e_1_2_1_4_1","unstructured":"Anthony Rebello. 2020. Custom Fault Injection Device Mapper Target: dm-loki. Retrieved from https:\/\/github.com\/WiscADSL\/dm-loki.  Anthony Rebello. 2020. Custom Fault Injection Device Mapper Target: dm-loki. Retrieved from https:\/\/github.com\/WiscADSL\/dm-loki."},{"key":"e_1_2_1_5_1","unstructured":"The Linux Kernel Organization. 2020. Device Mapper: dm-flakey. Retrieved from https:\/\/www.kernel.org\/doc\/html\/latest\/admin-guide\/device-mapper\/dm-flakey.html.  The Linux Kernel Organization. 2020. Device Mapper: dm-flakey. Retrieved from https:\/\/www.kernel.org\/doc\/html\/latest\/admin-guide\/device-mapper\/dm-flakey.html."},{"volume-title":"FreeBSD VFS Layer re-dirties","author":"Project The","key":"e_1_2_1_6_1","unstructured":"The FreeBSD Project . 2020. FreeBSD VFS Layer re-dirties pages after failed block write. Retrieved from https:\/\/github.com\/freebsd\/freebsd\/blob\/0209fe3398be56e5e042c422a96a4fbc654247f4\/sys\/kern\/vfs_bio.c#L2646. The FreeBSD Project. 2020. FreeBSD VFS Layer re-dirties pages after failed block write. Retrieved from https:\/\/github.com\/freebsd\/freebsd\/blob\/0209fe3398be56e5e042c422a96a4fbc654247f4\/sys\/kern\/vfs_bio.c#L2646."},{"key":"e_1_2_1_7_1","unstructured":"The Linux Kernel Organization. 2020. FSQA (xfstests). Retrieved from https:\/\/git.kernel.org\/pub\/scm\/fs\/xfs\/xfstests-dev.git\/about\/.  The Linux Kernel Organization. 2020. FSQA (xfstests). Retrieved from https:\/\/git.kernel.org\/pub\/scm\/fs\/xfs\/xfstests-dev.git\/about\/."},{"key":"e_1_2_1_8_1","unstructured":"Thomas Munro and Craig Ringer. 2020. Fsync Errors\u2014PostgreSQL wiki. Retrieved from https:\/\/wiki.postgresql.org\/wiki\/Fsync_Errors.  Thomas Munro and Craig Ringer. 2020. Fsync Errors\u2014PostgreSQL wiki. Retrieved from https:\/\/wiki.postgresql.org\/wiki\/Fsync_Errors."},{"key":"e_1_2_1_9_1","unstructured":"The Linux Kernel Organization. 2020. fsync(2)\u2014Linux Programmer's Manual. Retrieved from http:\/\/man7.org\/linux\/man-pages\/man2\/fdatasync.2.html.  The Linux Kernel Organization. 2020. fsync(2)\u2014Linux Programmer's Manual. Retrieved from http:\/\/man7.org\/linux\/man-pages\/man2\/fdatasync.2.html."},{"key":"e_1_2_1_10_1","unstructured":"Anthony Rebello. 2020. FUSE file system to emulate different file-system failure reactions: CuttleFS. Retrieved from https:\/\/github.com\/WiscADSL\/cuttlefs.  Anthony Rebello. 2020. FUSE file system to emulate different file-system failure reactions: CuttleFS. Retrieved from https:\/\/github.com\/WiscADSL\/cuttlefs."},{"key":"e_1_2_1_11_1","unstructured":"Jonathan Corbet. 2020. Improved block-layer error handling. Retrieved from https:\/\/lwn.net\/Articles\/724307\/.  Jonathan Corbet. 2020. Improved block-layer error handling. Retrieved from https:\/\/lwn.net\/Articles\/724307\/."},{"key":"e_1_2_1_12_1","unstructured":"The Stack Exchange network. 2020. Is data=journal safer for Ext4 as opposed to data=ordered? Retrieved from https:\/\/unix.stackexchange.com\/q\/127235.  The Stack Exchange network. 2020. Is data=journal safer for Ext4 as opposed to data=ordered? Retrieved from https:\/\/unix.stackexchange.com\/q\/127235."},{"key":"e_1_2_1_13_1","unstructured":"Google. 2020. LevelDB. Retrieved from https:\/\/github.com\/google\/leveldb.  Google. 2020. LevelDB. Retrieved from https:\/\/github.com\/google\/leveldb."},{"key":"e_1_2_1_14_1","unstructured":"Howard Chu. 2020. Lightning Memory-Mapped Database Manager (LMDB). Retrieved from http:\/\/www.lmdb.tech\/doc\/.  Howard Chu. 2020. Lightning Memory-Mapped Database Manager (LMDB). Retrieved from http:\/\/www.lmdb.tech\/doc\/."},{"key":"e_1_2_1_15_1","unstructured":"The Linux Kernel Organization. 2020. Man Pages: dmsetup. Retrieved from https:\/\/man7.org\/linux\/man-pages\/man8\/dmsetup.8.html.  The Linux Kernel Organization. 2020. Man Pages: dmsetup. Retrieved from https:\/\/man7.org\/linux\/man-pages\/man8\/dmsetup.8.html."},{"key":"e_1_2_1_16_1","unstructured":"The Linux Kernel Organization. 2020. Man Pages: losetup. Retrieved from https:\/\/man7.org\/linux\/man-pages\/man8\/losetup.8.html.  The Linux Kernel Organization. 2020. Man Pages: losetup. Retrieved from https:\/\/man7.org\/linux\/man-pages\/man8\/losetup.8.html."},{"key":"e_1_2_1_17_1","unstructured":"IEEE and The Open Group. 2020. POSIX Specification for fsync. Retrieved from https:\/\/pubs.opengroup.org\/onlinepubs\/9699919799\/functions\/fsync.html.  IEEE and The Open Group. 2020. POSIX Specification for fsync. Retrieved from https:\/\/pubs.opengroup.org\/onlinepubs\/9699919799\/functions\/fsync.html."},{"key":"e_1_2_1_18_1","unstructured":"The PostgreSQL Global Development Group. 2020. PostgreSQL. Retrieved from https:\/\/www.postgresql.org\/.  The PostgreSQL Global Development Group. 2020. PostgreSQL. Retrieved from https:\/\/www.postgresql.org\/."},{"key":"e_1_2_1_19_1","unstructured":"The PostgreSQL Global Development Group. 2020. PostgreSQL: Write-Ahead Logging (WAL). Retrieved from https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html.  The PostgreSQL Global Development Group. 2020. PostgreSQL: Write-Ahead Logging (WAL). Retrieved from https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html."},{"key":"e_1_2_1_20_1","unstructured":"Craig Ringer. 2020. PostgreSQL's handling of fsync() errors is unsafe and risks data loss at least on XFS. Retrieved from https:\/\/www.postgresql.org\/message-id\/flat\/CAMsr+YHh+5Oq4xziwwoEfhoTZgr07vdGG+hu=1adXx59aTeaoQ@mail.gmail.com  Craig Ringer. 2020. PostgreSQL's handling of fsync() errors is unsafe and risks data loss at least on XFS. Retrieved from https:\/\/www.postgresql.org\/message-id\/flat\/CAMsr+YHh+5Oq4xziwwoEfhoTZgr07vdGG+hu=1adXx59aTeaoQ@mail.gmail.com"},{"key":"e_1_2_1_21_1","unstructured":"Redis Labs. 2020. Redis. Retrieved from https:\/\/redis.io\/.  Redis Labs. 2020. Redis. Retrieved from https:\/\/redis.io\/."},{"key":"e_1_2_1_22_1","unstructured":"Redis Labs. 2020. Redis Persistence. Retrieved from https:\/\/redis.io\/topics\/persistence.  Redis Labs. 2020. Redis Persistence. Retrieved from https:\/\/redis.io\/topics\/persistence."},{"key":"e_1_2_1_23_1","unstructured":"SQLite. 2020. SQLite. Retrieved from https:\/\/www.sqlite.org\/index.html.  SQLite. 2020. SQLite. Retrieved from https:\/\/www.sqlite.org\/index.html."},{"key":"e_1_2_1_24_1","unstructured":"SQLite. 2020. SQLite Write-Ahead Logging. Retrieved from https:\/\/www.sqlite.org\/wal.html.  SQLite. 2020. SQLite Write-Ahead Logging. Retrieved from https:\/\/www.sqlite.org\/wal.html."},{"key":"e_1_2_1_25_1","unstructured":"SystemTap. 2020. SystemTap. Retrieved from https:\/\/sourceware.org\/systemtap\/.  SystemTap. 2020. SystemTap. Retrieved from https:\/\/sourceware.org\/systemtap\/."},{"key":"e_1_2_1_26_1","unstructured":"Theodore Ts'o. 2020. Why does ext4 clear the dirty bit on I\/O error? Retrieved from https:\/\/www.postgresql.org\/message-id\/edc2e4d5-5446-e0db-25da-66db6c020cc3%40commandprompt.com  Theodore Ts'o. 2020. Why does ext4 clear the dirty bit on I\/O error? Retrieved from https:\/\/www.postgresql.org\/message-id\/edc2e4d5-5446-e0db-25da-66db6c020cc3%40commandprompt.com"},{"key":"e_1_2_1_27_1","unstructured":"WiredTiger. 2020. WT-4045 Don't retry fsync calls after EIO failure. Retrieved from https:\/\/github.com\/wiredtiger\/wiredtiger\/commit\/ae8bccce3d8a8248afa0e4e0cf67674a43dede96.  WiredTiger. 2020. WT-4045 Don't retry fsync calls after EIO failure. Retrieved from https:\/\/github.com\/wiredtiger\/wiredtiger\/commit\/ae8bccce3d8a8248afa0e4e0cf67674a43dede96."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/3299537"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/1364813.1364828"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1269899.1254917"},{"volume-title":"Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201908)","author":"Bairavasundaram Lakshmi N.","key":"e_1_2_1_31_1","unstructured":"Lakshmi N. Bairavasundaram , Meenali Rungta , Nitin Agrawal , Andrea C. Arpaci-Dusseau , Remzi H. Arpaci-Dusseau , and Michael M. Swift . 2008. Analyzing the effects of disk-pointer corruption . In Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201908) . 502\u2013511. Lakshmi N. Bairavasundaram, Meenali Rungta, Nitin Agrawal, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, and Michael M. Swift. 2008. Analyzing the effects of disk-pointer corruption. In Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201908). 502\u2013511."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3205289.3205302"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522726"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/2208461.2208470"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/3358807.3358809"},{"volume-title":"Evaluation of High Performance Key-value Stores. Master\u2019s thesis","author":"Forfang Christian","key":"e_1_2_1_36_1","unstructured":"Christian Forfang . 2014. Evaluation of High Performance Key-value Stores. Master\u2019s thesis . Norwegian University of Science and Technology . Christian Forfang. 2014. Evaluation of High Performance Key-value Stores. Master\u2019s thesis. Norwegian University of Science and Technology."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.5555\/3129633.3129648"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267638.1267643"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1323293.1294290"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.5555\/1364813.1364827"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3433210.3437518"},{"key":"e_1_2_1_42_1","unstructured":"FUSE (Filesystem in Userspace). 2020. The reference implementation of the Linux FUSE (Filesystem in Userspace) interface. Retrieved from https:\/\/github.com\/libfuse\/libfuse.  FUSE (Filesystem in Userspace). 2020. The reference implementation of the Linux FUSE (Filesystem in Userspace) interface. Retrieved from https:\/\/github.com\/libfuse\/libfuse."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.5555\/3358807.3358874"},{"volume-title":"Positioning and Power in Academic Publishing: Players","author":"Kluyver Thomas","key":"e_1_2_1_45_1","unstructured":"Thomas Kluyver , Benjamin Ragan-Kelley , Fernando P\u00e9rez , Brian Granger , Matthias Bussonnier , Jonathan Frederic , Kyle Kelley , Jessica Hamrick , Jason Grout , Sylvain Corlay , Paul Ivanov , Dami\u00e1n Avila , Safia Abdalla , Carol Willing , and Jupyter development team. 2016. Jupyter notebooks\u2014A publishing format for reproducible computational workflows . In Positioning and Power in Academic Publishing: Players , Agents and Agendas, Fernando Loizides and Birgit Scmidt (Eds.). IOS Press , Netherlands , 87\u201390. Retrieved from https:\/\/eprints.soton.ac.uk\/403913\/. Thomas Kluyver, Benjamin Ragan-Kelley, Fernando P\u00e9rez, Brian Granger, Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, Jessica Hamrick, Jason Grout, Sylvain Corlay, Paul Ivanov, Dami\u00e1n Avila, Safia Abdalla, Carol Willing, and Jupyter development team. 2016. Jupyter notebooks\u2014A publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agendas, Fernando Loizides and Birgit Scmidt (Eds.). IOS Press, Netherlands, 87\u201390. Retrieved from https:\/\/eprints.soton.ac.uk\/403913\/."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/1364813.1364822"},{"key":"e_1_2_1_47_1","first-page":"3","article-title":"Ext4: The next generation of the Ext3 file system","volume":"32","author":"Mathur Avantika","year":"2007","unstructured":"Avantika Mathur , Mingming Cao , and Andreas Dilger . 2007 . Ext4: The next generation of the Ext3 file system . Usenix Assoc. 32 , 3 (June 2007), 25\u201330. Avantika Mathur, Mingming Cao, and Andreas Dilger. 2007. Ext4: The next generation of the Ext3 file system. Usenix Assoc. 32, 3 (June 2007), 25\u201330.","journal-title":"Usenix Assoc."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267257.1267264"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/3291168.3291172"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/3129633.3129650"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.5555\/2685048.2685082"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2005.65"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095830"},{"volume-title":"Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920)","author":"Rebello Anthony","key":"e_1_2_1_54_1","unstructured":"Anthony Rebello , Yuvraj Patel , Ramnatthan Alagappan , Andrea C. Arpaci-Dusseau , and Remzi H . Arpaci-Dusseau. 2020. Can applications recover from fsync failures? In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920) . 753\u2013767. Anthony Rebello, Yuvraj Patel, Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2020. Can applications recover from fsync failures? In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920). 753\u2013767."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2501620.2501623"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855511.1855517"},{"key":"e_1_2_1_57_1","volume-title":"Proceedings of the","author":"Seltzer Margo","year":"1990","unstructured":"Margo Seltzer , Peter Chen , and John Ousterhout . 1990 . Disk scheduling revisited . In Proceedings of the Winter 1990 USENIX Conference. 313\u2013323. Margo Seltzer, Peter Chen, and John Ousterhout. 1990. Disk scheduling revisited. In Proceedings of the Winter 1990 USENIX Conference. 313\u2013323."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267724.1267778"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.5555\/1268299.1268300"},{"key":"e_1_2_1_60_1","unstructured":"Tomas Vondra. 2019. PostgreSQL vs. fsync. How is it possible that PostgreSQL used fsync incorrectly for 20 years and what we\u2019ll do about it.Brussels Belgium. Retrieved from https:\/\/archive.fosdem.org\/2019\/schedule\/event\/postgresql_fsync\/.  Tomas Vondra. 2019. PostgreSQL vs. fsync. How is it possible that PostgreSQL used fsync incorrectly for 20 years and what we\u2019ll do about it.Brussels Belgium. Retrieved from https:\/\/archive.fosdem.org\/2019\/schedule\/event\/postgresql_fsync\/."},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.5555\/3189759.3189779"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855511.1855514"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSST.2015.7208275"}],"container-title":["ACM Transactions on Storage"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3450338","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3450338","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3450338","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:44Z","timestamp":1750191524000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3450338"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,5,30]]},"references-count":62,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2021,5,30]]}},"alternative-id":["10.1145\/3450338"],"URL":"https:\/\/doi.org\/10.1145\/3450338","relation":{},"ISSN":["1553-3077","1553-3093"],"issn-type":[{"type":"print","value":"1553-3077"},{"type":"electronic","value":"1553-3093"}],"subject":[],"published":{"date-parts":[[2021,5,30]]},"assertion":[{"value":"2020-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-06-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}