{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,30]],"date-time":"2025-08-30T17:13:43Z","timestamp":1756574023342},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"11","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2024,7]]},"abstract":"<jats:p>\n            We present LazyFS, a new fault injection tool that simplifies the debugging and reproduction of complex data\n            <jats:italic>durability<\/jats:italic>\n            bugs experienced by databases, key-value stores, and other data-centric systems in crashes. Our tool simulates persistence properties of POSIX file systems (e.g., operations\n            <jats:italic>ordering<\/jats:italic>\n            and\n            <jats:italic>atomicity)<\/jats:italic>\n            and enables users to inject lost and torn write faults with a precise and controlled approach. Further, it provides profiling information about the system's operations flow and persisted data, enabling users to better understand the root cause of errors.\n          <\/jats:p>\n          <jats:p>We use LazyFS to study seven important systems: PostgreSQL, etcd, Zookeeper, Redis, LevelDB, PebblesDB, and Lightning Network. Our fault injection campaign shows that LazyFS automates and facilitates the reproduction of five known bug reports containing manual and complex reproducibility steps. Further, it aids in understanding and reproducing seven ambiguous bugs reported by users. Finally, LazyFS is used to find eight new bugs, which lead to data loss, corruption, and unavailability.<\/jats:p>","DOI":"10.14778\/3681954.3681980","type":"journal-article","created":{"date-parts":[[2024,8,30]],"date-time":"2024-08-30T16:23:36Z","timestamp":1725035016000},"page":"3017-3030","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["When Amnesia Strikes: Understanding and Reproducing Data Loss Bugs with Fault Injection"],"prefix":"10.14778","volume":"17","author":[{"given":"Maria","family":"Ramos","sequence":"first","affiliation":[{"name":"INESC TEC &amp; U. Minho"}]},{"given":"Jo\u00e3o","family":"Azevedo","sequence":"additional","affiliation":[{"name":"INESC TEC"}]},{"given":"Kyle","family":"Kingsbury","sequence":"additional","affiliation":[{"name":"Jepsen"}]},{"given":"Jos\u00e9","family":"Pereira","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; U. Minho"}]},{"given":"T\u00e2nia","family":"Esteves","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; U. Minho"}]},{"given":"Ricardo","family":"Macedo","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; U. Minho"}]},{"given":"Jo\u00e3o","family":"Paulo","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; U. Minho"}]}],"member":"320","published-online":{"date-parts":[[2024,8,30]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Arpaci-Dusseau","author":"Arpaci-Dusseau Remzi H.","year":"2018","unstructured":"Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. 2018. Operating Systems: Three Easy Pieces. CreateSpace Independent Publishing Platform, North Charleston, SC, USA."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872406"},{"volume-title":"Understanding the Linux Kernel (3 ed.)","author":"Bovet Daniel","key":"e_1_2_1_3_1","unstructured":"Daniel Bovet and Marco Cesati. 2005. Understanding the Linux Kernel (3 ed.). Oreilly & Associates Inc."},{"key":"e_1_2_1_4_1","volume-title":"https:\/\/btrfs.readthedocs.io\/en\/latest\/Status.html Last accessed on","author":"Status BTRFS.","year":"2024","unstructured":"BTRFS. 2024. Status. https:\/\/btrfs.readthedocs.io\/en\/latest\/Status.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183586.3183605"},{"volume-title":"ETCD data gets corrupted with error \"read wal error (walpb: crc mismatch)\". https:\/\/github.com\/etcd-io\/etcd\/issues\/6191 Last accessed on","year":"2024","key":"e_1_2_1_6_1","unstructured":"etcd. 2016. ETCD data gets corrupted with error \"read wal error (walpb: crc mismatch)\". https:\/\/github.com\/etcd-io\/etcd\/issues\/6191 Last accessed on July 18, 2024."},{"volume-title":"ETCD data gets corrupted with error \"walpb: crc mismatch\". https:\/\/github.com\/etcd-io\/etcd\/issues\/11488 Last accessed on","year":"2024","key":"e_1_2_1_7_1","unstructured":"etcd. 2019. ETCD data gets corrupted with error \"walpb: crc mismatch\". https:\/\/github.com\/etcd-io\/etcd\/issues\/11488 Last accessed on July 18, 2024."},{"volume-title":"Possible split-brain & loss of committed write with loss of un-fsynced data. https:\/\/github.com\/etcd-io\/etcd\/issues\/14143 Last accessed on","year":"2024","key":"e_1_2_1_8_1","unstructured":"etcd. 2022. Possible split-brain & loss of committed write with loss of un-fsynced data. https:\/\/github.com\/etcd-io\/etcd\/issues\/14143 Last accessed on July 18, 2024."},{"volume-title":"Avoid torn init writes. https:\/\/github.com\/etcd-io\/bbolt\/issues\/567#issuecomment-1792646307 Last accessed on","year":"2024","key":"e_1_2_1_9_1","unstructured":"etcd. 2023. Avoid torn init writes. https:\/\/github.com\/etcd-io\/bbolt\/issues\/567#issuecomment-1792646307 Last accessed on July 18, 2024."},{"volume-title":"etcd fails to start after power failure. https:\/\/github.com\/etcd-io\/etcd\/issues\/16596 Last accessed on","year":"2024","key":"e_1_2_1_10_1","unstructured":"etcd. 2023. etcd fails to start after power failure. https:\/\/github.com\/etcd-io\/etcd\/issues\/16596 Last accessed on July 18, 2024."},{"volume-title":"Add support for lazyfs. https:\/\/github.com\/etcd-io\/etcd\/pull\/14691 Last accessed on","year":"2024","key":"e_1_2_1_11_1","unstructured":"etcd. 2024. Add support for lazyfs. https:\/\/github.com\/etcd-io\/etcd\/pull\/14691 Last accessed on July 18, 2024."},{"volume-title":"Distributed reliable key-value store for the most critical data of a distributed system. https:\/\/github.com\/etcd-io\/etcd Last accessed on","year":"2024","key":"e_1_2_1_12_1","unstructured":"etcd. 2024. Distributed reliable key-value store for the most critical data of a distributed system. https:\/\/github.com\/etcd-io\/etcd Last accessed on July 18, 2024."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3125497"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/356842.356847"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 2010 USENIX Conference on USENIX Annual Technical Conference","author":"Hunt Patrick","year":"2010","unstructured":"Patrick Hunt, Mahadev Konar, Flavio P. Junqueira, and Benjamin Reed. 2010. ZooKeeper: wait-free coordination for internet-scale systems. In Proceedings of the 2010 USENIX Conference on USENIX Annual Technical Conference (Boston, MA) (USENIXATC'10). USENIX Association, USA, 11."},{"volume-title":"A framework for distributed systems verification, with fault injection. https:\/\/github.com\/jepsen-io\/jepsen Last accessed on","year":"2024","key":"e_1_2_1_16_1","unstructured":"Jepsen. 2024. A framework for distributed systems verification, with fault injection. https:\/\/github.com\/jepsen-io\/jepsen Last accessed on July 18, 2024."},{"volume-title":"https:\/\/jepsen.io\/analyses Last accessed on","year":"2024","key":"e_1_2_1_17_1","unstructured":"Jepsen. 2024. Analyses. https:\/\/jepsen.io\/analyses Last accessed on July 18, 2024."},{"issue":"0","key":"e_1_2_1_18_1","first-page":"34","article-title":"Jepsen Report","volume":"8","year":"2024","unstructured":"Jepsen. 2024. Jepsen Report: MySQL 8.0.34. https:\/\/jepsen.io\/analyses\/mysql-8.0.34 Last accessed on July 18, 2024.","journal-title":"MySQL"},{"volume-title":"MongoDB Jepsen tests. https:\/\/github.com\/jepsen-io\/mongodb Last accessed on","year":"2024","key":"e_1_2_1_19_1","unstructured":"Jepsen. 2024. MongoDB Jepsen tests. https:\/\/github.com\/jepsen-io\/mongodb Last accessed on July 18, 2024."},{"volume-title":"Tests for Percona Server with Group Replication Resources. https:\/\/github.com\/jepsen-io\/percona-gr Last accessed on","year":"2024","key":"e_1_2_1_20_1","unstructured":"Jepsen. 2024. Tests for Percona Server with Group Replication Resources. https:\/\/github.com\/jepsen-io\/percona-gr Last accessed on July 18, 2024."},{"key":"e_1_2_1_21_1","volume-title":"Corruption: CURRENT file does not end with newline\" database recovery was not possible. https:\/\/github.com\/google\/leveldb\/issues\/75 Last accessed on","author":"Error DB.","year":"2024","unstructured":"LevelDB. 2014. \"LevelDBError: Corruption: CURRENT file does not end with newline\" database recovery was not possible. https:\/\/github.com\/google\/leveldb\/issues\/75 Last accessed on July 18, 2024."},{"key":"e_1_2_1_22_1","volume-title":"LevelDB does not discard partially-flushed transactions. https:\/\/github.com\/google\/leveldb\/issues\/251 Last accessed on","author":"DB.","year":"2024","unstructured":"LevelDB. 2014. Possible bug: After a power-loss, LevelDB does not discard partially-flushed transactions. https:\/\/github.com\/google\/leveldb\/issues\/251 Last accessed on July 18, 2024."},{"key":"e_1_2_1_23_1","volume-title":"Possible bug: Missing a fsync() on the \".log\" file before compaction. https:\/\/github.com\/google\/leveldb\/issues\/193 Last accessed on","author":"DB.","year":"2024","unstructured":"LevelDB. 2014. Possible bug: Missing a fsync() on the \".log\" file before compaction. https:\/\/github.com\/google\/leveldb\/issues\/193 Last accessed on July 18, 2024."},{"key":"e_1_2_1_24_1","volume-title":"Possible bug: Missing a fsync() or msync() call after creating MANIFEST-000001. https:\/\/github.com\/google\/leveldb\/issues\/189 Last accessed on","author":"DB.","year":"2024","unstructured":"LevelDB. 2014. Possible bug: Missing a fsync() or msync() call after creating MANIFEST-000001. https:\/\/github.com\/google\/leveldb\/issues\/189 Last accessed on July 18, 2024."},{"key":"e_1_2_1_25_1","volume-title":"A fast key-value storage library. https:\/\/github.com\/google\/leveldb Last accessed on","author":"DB.","year":"2024","unstructured":"LevelDB. 2024. A fast key-value storage library. https:\/\/github.com\/google\/leveldb Last accessed on July 18, 2024."},{"volume-title":"The reference implementation of the Linux FUSE (Filesystem in Userspace) interface. https:\/\/github.com\/libfuse\/libfuse Last accessed on","year":"2024","key":"e_1_2_1_26_1","unstructured":"libfuse. 2024. The reference implementation of the Linux FUSE (Filesystem in Userspace) interface. https:\/\/github.com\/libfuse\/libfuse Last accessed on July 18, 2024."},{"key":"e_1_2_1_27_1","volume-title":"A complete implementation of a Lightning Network node. https:\/\/github.com\/lightningnetwork\/lnd Last accessed on","author":"Daemon Lightning Network","year":"2024","unstructured":"Lightning Network Daemon. 2024. A complete implementation of a Lightning Network node. https:\/\/github.com\/lightningnetwork\/lnd Last accessed on July 18, 2024."},{"key":"e_1_2_1_28_1","volume-title":"mkfs.xfs(8) - Linux man page. https:\/\/linux.die.net\/man\/8\/mkfs.xfs Last accessed on","author":"Linux","year":"2024","unstructured":"Linux man page. 2024. mkfs.xfs(8) - Linux man page. https:\/\/linux.die.net\/man\/8\/mkfs.xfs Last accessed on July 18, 2024."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/3291168.3291172"},{"key":"e_1_2_1_30_1","volume-title":"Extend WT fault injection testing to support LazyFS. https:\/\/jira.mongodb.org\/browse\/WT-9368 Last accessed on","author":"DB.","year":"2024","unstructured":"MongoDB. 2024. Extend WT fault injection testing to support LazyFS. https:\/\/jira.mongodb.org\/browse\/WT-9368 Last accessed on July 18, 2024."},{"key":"e_1_2_1_31_1","volume-title":"Replace ioutil.WriteFile usage with Fsync and friends. https:\/\/github.com\/lightningnetwork\/lnd\/issues\/6720 Last accessed on","author":"Network Lightning","year":"2024","unstructured":"Lightning Network. 2022. Replace ioutil.WriteFile usage with Fsync and friends. https:\/\/github.com\/lightningnetwork\/lnd\/issues\/6720 Last accessed on July 18, 2024."},{"key":"e_1_2_1_32_1","volume-title":"open(2) --- Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/open.2.html Last accessed on","author":"The Linux Kernel Organization","year":"2024","unstructured":"The Linux Kernel Organization. 2024. open(2) --- Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/open.2.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_33_1","volume-title":"write(2) --- Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/write.2.html Last accessed on","author":"The Linux Kernel Organization","year":"2024","unstructured":"The Linux Kernel Organization. 2024. write(2) --- Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/write.2.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_34_1","volume-title":"PebblesDB does not discard partially-flushed values. https:\/\/github.com\/utsaslab\/pebblesdb\/issues\/28 Last accessed on","author":"DB.","year":"2024","unstructured":"PebbledDB. 2023. PebblesDB does not discard partially-flushed values. https:\/\/github.com\/utsaslab\/pebblesdb\/issues\/28 Last accessed on July 18, 2024."},{"key":"e_1_2_1_35_1","volume-title":"The PebblesDB write-optimized key-value store (SOSP 17). https:\/\/github.com\/utsaslab\/pebblesdb Last accessed on","author":"DB.","year":"2024","unstructured":"PebblesDB. 2024. The PebblesDB write-optimized key-value store (SOSP 17). https:\/\/github.com\/utsaslab\/pebblesdb Last accessed on July 18, 2024."},{"volume-title":"Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation","author":"Pillai Thanumalayan Sankaranarayana","key":"e_1_2_1_36_1","unstructured":"Thanumalayan Sankaranarayana Pillai, Vijay Chidambaram, Ramnatthan Alagappan, Samer Al-Kiswany, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2014. All file systems are not created equal: on the complexity of crafting crash-consistent applications. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation (Broomfield, CO) (OSDI'14). USENIX Association, USA, 433--448."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2800695.2801719"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3078468.3078480"},{"key":"e_1_2_1_39_1","volume-title":"https:\/\/www.postgresql.org\/message-id\/flat\/17700.1340394540%40sss.pgh.pa.us#b9644ae1d7f27171bb6921d0a7084fa4 Last accessed on","author":"SQL.","year":"2024","unstructured":"PostgreSQL. 2012. \"global\/pgstat.stat\" corrupt. https:\/\/www.postgresql.org\/message-id\/flat\/17700.1340394540%40sss.pgh.pa.us#b9644ae1d7f27171bb6921d0a7084fa4 Last accessed on July 18, 2024."},{"key":"e_1_2_1_40_1","volume-title":"amcheck --- tools to verify table and index consistency. https:\/\/www.postgresql.org\/docs\/current\/amcheck.html Last accessed on","author":"SQL.","year":"2024","unstructured":"PostgreSQL. 2024. amcheck --- tools to verify table and index consistency. https:\/\/www.postgresql.org\/docs\/current\/amcheck.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_41_1","volume-title":"Full page writes in PostgreSQL. https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-FULL-PAGE-WRITES Last accessed on","author":"SQL.","year":"2024","unstructured":"PostgreSQL. 2024. Full page writes in PostgreSQL. https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-FULL-PAGE-WRITES Last accessed on July 18, 2024."},{"key":"e_1_2_1_42_1","volume-title":"The Statistics Collector. https:\/\/www.postgresql.org\/docs\/12\/monitoring-stats.html Last accessed on","author":"SQL.","year":"2024","unstructured":"PostgreSQL. 2024. The Statistics Collector. https:\/\/www.postgresql.org\/docs\/12\/monitoring-stats.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_43_1","volume-title":"The World's Most Advanced Open Source Relational Database. https:\/\/www.postgresql.org\/ Last accessed on","author":"SQL.","year":"2024","unstructured":"PostgreSQL. 2024. The World's Most Advanced Open Source Relational Database. https:\/\/www.postgresql.org\/ Last accessed on July 18, 2024."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3450338"},{"volume-title":"Make cluster config file saving atomic and fsync acl. https:\/\/github.com\/redis\/redis\/pull\/10924 Last accessed on","year":"2024","key":"e_1_2_1_45_1","unstructured":"Redis. 2022. Make cluster config file saving atomic and fsync acl. https:\/\/github.com\/redis\/redis\/pull\/10924 Last accessed on July 18, 2024."},{"volume-title":"In-memory database that persists on disk. https:\/\/github.com\/redis\/redis Last accessed on","year":"2024","key":"e_1_2_1_46_1","unstructured":"Redis. 2024. In-memory database that persists on disk. https:\/\/github.com\/redis\/redis Last accessed on July 18, 2024."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.5555\/3026877.3026879"},{"volume-title":"strace: linux syscall tracer. https:\/\/strace.io Last accessed on","year":"2024","key":"e_1_2_1_48_1","unstructured":"strace. 2024. strace: linux syscall tracer. https:\/\/strace.io Last accessed on July 18, 2024."},{"key":"e_1_2_1_49_1","volume-title":"ext4 Data Structures and Algorithms. https:\/\/www.kernel.org\/doc\/html\/latest\/filesystems\/ext4\/overview.html#blocks Last accessed on","author":"Kernel Archives The Linux","year":"2024","unstructured":"The Linux Kernel Archives. 2024. ext4 Data Structures and Algorithms. https:\/\/www.kernel.org\/doc\/html\/latest\/filesystems\/ext4\/overview.html#blocks Last accessed on July 18, 2024."},{"key":"e_1_2_1_50_1","volume-title":"fsync(2) - Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/fsync.2.html Last accessed on","author":"The Linux Kernel Organization","year":"2024","unstructured":"The Linux Kernel Organization. 2024. fsync(2) - Linux man page. https:\/\/man7.org\/linux\/man-pages\/man2\/fsync.2.html Last accessed on July 18, 2024."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024733"},{"key":"e_1_2_1_52_1","volume-title":"Proceedings of the 15th Usenix Conference on File and Storage Technologies (Santa clara, CA, USA) (FAST'17)","author":"Reddy Vangoor Bharath Kumar","year":"2017","unstructured":"Bharath Kumar Reddy Vangoor, Vasily Tarasov, and Erez Zadok. 2017. To FUSE or not to FUSE: performance of user-space file systems. In Proceedings of the 15th Usenix Conference on File and Storage Technologies (Santa clara, CA, USA) (FAST'17). USENIX Association, USA, 59--72."},{"key":"e_1_2_1_53_1","first-page":"303","volume-title":"Proceedings of the Linux Symposium. 303--310","author":"Wheeler Ric","year":"2009","unstructured":"Ric Wheeler and Red Hat. 2009. How to (Not) Lose Your Data. In Proceedings of the Linux Symposium. 303--310. https:\/\/kernel.org\/doc\/ols\/2009\/ols2009-pages-303-310.pdf Last accessed on July 18, 2024."},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation -","volume":"7","author":"Yang Junfeng","year":"2006","unstructured":"Junfeng Yang, Can Sar, and Dawson Engler. 2006. EXPLODE: a lightweight, general system for finding serious storage system errors. In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7 (Seattle, WA) (OSDI '06). USENIX Association, USA, 10."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1189256.1189259"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.5555\/2685048.2685083"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.5555\/2591272.2591300"},{"volume-title":"Transaction log: \/logs\/jhe\/nc\/apps\/zookeeper\/version-2\/log.1400470027 has invalid magic number 0 != 1514884167. https:\/\/lists.apache.org\/thread\/dlhrd5t2xyjr425l78xofqs7r3v4s486 Last accessed on","year":"2024","key":"e_1_2_1_58_1","unstructured":"ZooKeeper. 2013. Transaction log: \/logs\/jhe\/nc\/apps\/zookeeper\/version-2\/log.1400470027 has invalid magic number 0 != 1514884167. https:\/\/lists.apache.org\/thread\/dlhrd5t2xyjr425l78xofqs7r3v4s486 Last accessed on July 18, 2024."},{"volume-title":"Zookeeper failed to start for empty txn log. https:\/\/issues.apache.org\/jira\/browse\/ZOOKEEPER-2332 Last accessed on","year":"2024","key":"e_1_2_1_59_1","unstructured":"ZooKeeper. 2015. Zookeeper failed to start for empty txn log. https:\/\/issues.apache.org\/jira\/browse\/ZOOKEEPER-2332 Last accessed on July 18, 2024."},{"volume-title":"Possible Cluster Unavailability. https:\/\/issues.apache.org\/jira\/browse\/ZOOKEEPER-2560 Last accessed on","year":"2024","key":"e_1_2_1_60_1","unstructured":"ZooKeeper. 2016. Possible Cluster Unavailability. https:\/\/issues.apache.org\/jira\/browse\/ZOOKEEPER-2560 Last accessed on July 18, 2024."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3681954.3681980","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,9,4]],"date-time":"2024-09-04T18:44:31Z","timestamp":1725475471000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3681954.3681980"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,7]]},"references-count":60,"journal-issue":{"issue":"11","published-print":{"date-parts":[[2024,7]]}},"alternative-id":["10.14778\/3681954.3681980"],"URL":"https:\/\/doi.org\/10.14778\/3681954.3681980","relation":{},"ISSN":["2150-8097"],"issn-type":[{"type":"print","value":"2150-8097"}],"subject":[],"published":{"date-parts":[[2024,7]]},"assertion":[{"value":"2024-08-30","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}