{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:23:54Z","timestamp":1750220634994,"version":"3.41.0"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2021,1,29]],"date-time":"2021-01-29T00:00:00Z","timestamp":1611878400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"NSF"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Storage"],"published-print":{"date-parts":[[2021,2,28]]},"abstract":"<jats:p>\n            Making logical copies, or clones, of files and directories is critical to many real-world applications and workflows, including backups, virtual machines, and containers. An ideal clone implementation meets the following performance goals: (1) creating the clone has low latency; (2) reads are fast in all versions (i.e., spatial locality is always maintained, even after modifications); (3) writes are fast in all versions; (4) the overall system is space efficient. Implementing a clone operation that realizes all four properties, which we call a\n            <jats:italic>nimble clone<\/jats:italic>\n            , is a long-standing open problem.\n          <\/jats:p>\n          <jats:p>\n            This article describes nimble clones in B-\u03f5-tree File System (BetrFS), an open-source, full-path-indexed, and write-optimized file system. The key observation behind our work is that standard copy-on-write heuristics can be too coarse to be space efficient, or too fine-grained to preserve locality. On the other hand, a write-optimized key-value store, such as a B\u03b5-tree or an log-structured merge-tree (LSM)-tree, can decouple the logical application of updates from the granularity at which data is physically copied. In our write-optimized clone implementation, data sharing among clones is only broken when a clone has changed enough to warrant making a copy, a policy we call\n            <jats:italic>copy-on-abundant-write<\/jats:italic>\n            .\n          <\/jats:p>\n          <jats:p>We demonstrate that the algorithmic work needed to batch and amortize the cost of BetrFS clone operations does not erode the performance advantages of baseline BetrFS; BetrFS performance even improves in a few cases. BetrFS cloning is efficient; for example, when using the clone operation for container creation, BetrFS outperforms a simple recursive copy by up to two orders-of-magnitude and outperforms file systems that have specialized Linux Containers (LXC) backends by 3--4\u00d7.<\/jats:p>","DOI":"10.1145\/3423495","type":"journal-article","created":{"date-parts":[[2021,1,29]],"date-time":"2021-01-29T11:05:43Z","timestamp":1611918343000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Copy-on-Abundant-Write for Nimble File System Clones"],"prefix":"10.1145","volume":"17","author":[{"given":"Yang","family":"Zhan","sequence":"first","affiliation":[{"name":"The University of North Carolina at Chapel Hill, Chapel Hill, NC"}]},{"given":"Alex","family":"Conway","sequence":"additional","affiliation":[{"name":"VMware Research Group, Palo Alto, CA"}]},{"given":"Yizheng","family":"Jiao","sequence":"additional","affiliation":[{"name":"The University of North Carolina at Chapel Hill, Chapel Hill, NC"}]},{"given":"Nirjhar","family":"Mukherjee","sequence":"additional","affiliation":[{"name":"The University of North Carolina at Chapel Hill, Chapel Hill, NC"}]},{"given":"Ian","family":"Groombridge","sequence":"additional","affiliation":[{"name":"Pace University, New York, NY"}]},{"given":"Michael A.","family":"Bender","sequence":"additional","affiliation":[{"name":"Stony Brook University, Stony Brook, NY"}]},{"given":"Martin","family":"Farach-Colton","sequence":"additional","affiliation":[{"name":"Rutgers University, Piscataway, NJ"}]},{"given":"William","family":"Jannen","sequence":"additional","affiliation":[{"name":"Williams College, Williamstown, MA"}]},{"given":"Rob","family":"Johnson","sequence":"additional","affiliation":[{"name":"VMware Research, Hillview Ave, Palo Alto, CA"}]},{"given":"Donald E.","family":"Porter","sequence":"additional","affiliation":[{"name":"The University of North Carolina at Chapel Hill, Chapel Hill, NC"}]},{"given":"Jun","family":"Yuan","sequence":"additional","affiliation":[{"name":"Pace University, New York, NY"}]}],"member":"320","published-online":{"date-parts":[[2021,1,29]]},"reference":[{"unstructured":"1985. Vax\/VMS System Software Handbook.  1985. Vax\/VMS System Software Handbook.","key":"e_1_2_1_1_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_2_1","DOI":"10.5555\/3310435.3310590"},{"doi-asserted-by":"publisher","key":"e_1_2_1_3_1","DOI":"10.5555\/647912.740801"},{"doi-asserted-by":"publisher","key":"e_1_2_1_4_1","DOI":"10.1145\/3323165.3323210"},{"doi-asserted-by":"publisher","key":"e_1_2_1_5_1","DOI":"10.1145\/1248377.1248393"},{"volume-title":"An introduction to B&epsiv;-trees and write-optimization. :login","year":"2015","author":"Bender Michael A.","key":"e_1_2_1_6_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_7_1","DOI":"10.1145\/3034786.3056117"},{"doi-asserted-by":"publisher","key":"e_1_2_1_8_1","DOI":"10.1145\/361268.361271"},{"doi-asserted-by":"publisher","key":"e_1_2_1_9_1","DOI":"10.5555\/1267102.1267104"},{"doi-asserted-by":"publisher","key":"e_1_2_1_10_1","DOI":"10.5555\/644108.644201"},{"volume-title":"Proceedings of the USENIX","year":"1992","author":"Chutani Sailesh","key":"e_1_2_1_11_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_12_1","DOI":"10.5555\/3129633.3129639"},{"volume-title":"How to fragment your file system. :login","year":"2017","author":"Conway Alex","key":"e_1_2_1_13_1"},{"key":"e_1_2_1_14_1","first-page":"1","article-title":"Optimal Hashing in External Memory. In ICALP (LIPIcs), Vol. 107","volume":"39","author":"Conway Alexander","year":"2018","journal-title":"Schloss Dagstuhl - Leibniz-Zentrum f\u00fcr Informatik"},{"doi-asserted-by":"publisher","key":"e_1_2_1_15_1","DOI":"10.5555\/3357062.3357082"},{"doi-asserted-by":"publisher","key":"e_1_2_1_16_1","DOI":"10.1145\/2857056"},{"doi-asserted-by":"publisher","key":"e_1_2_1_17_1","DOI":"10.5555\/1404014.1404024"},{"doi-asserted-by":"publisher","key":"e_1_2_1_18_1","DOI":"10.5555\/2342806.2342820"},{"doi-asserted-by":"publisher","key":"e_1_2_1_19_1","DOI":"10.14778\/2794367.2794369"},{"doi-asserted-by":"publisher","key":"e_1_2_1_20_1","DOI":"10.5555\/1267074.1267093"},{"doi-asserted-by":"publisher","key":"e_1_2_1_21_1","DOI":"10.1145\/35037.35059"},{"doi-asserted-by":"publisher","key":"e_1_2_1_22_1","DOI":"10.5555\/2750482.2750505"},{"doi-asserted-by":"publisher","key":"e_1_2_1_23_1","DOI":"10.1145\/2798729"},{"doi-asserted-by":"publisher","key":"e_1_2_1_24_1","DOI":"10.1145\/1151374.1151375"},{"doi-asserted-by":"publisher","key":"e_1_2_1_25_1","DOI":"10.1145\/319628.319663"},{"doi-asserted-by":"publisher","key":"e_1_2_1_26_1","DOI":"10.5555\/1268708.1268732"},{"unstructured":"Digital Equipment Corporation (DEC). 1988. Digital Equipment Corporation (DEC). TOPS-20 User's manual. http:\/\/www.bourguet.org\/v2\/pdp10\/users\/index.  Digital Equipment Corporation (DEC). 1988. Digital Equipment Corporation (DEC). TOPS-20 User's manual. http:\/\/www.bourguet.org\/v2\/pdp10\/users\/index.","key":"e_1_2_1_27_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_28_1","DOI":"10.5555\/1096673.1096690"},{"unstructured":"Prashanth Nayak and Robert Ricci. 2013. Detailed study on Linux logical volume manager. Flux Research Group University of Utah (2013).  Prashanth Nayak and Robert Ricci. 2013. Detailed study on Linux logical volume manager. Flux Research Group University of Utah (2013).","key":"e_1_2_1_29_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_30_1","DOI":"10.1007\/s002360050048"},{"doi-asserted-by":"publisher","key":"e_1_2_1_31_1","DOI":"10.1145\/1063786.1063789"},{"volume-title":"Proceedings of the","year":"1990","author":"Pike Rob","key":"e_1_2_1_32_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_33_1","DOI":"10.1145\/1326542.1326544"},{"doi-asserted-by":"publisher","key":"e_1_2_1_34_1","DOI":"10.1145\/2501620.2501623"},{"doi-asserted-by":"publisher","key":"e_1_2_1_35_1","DOI":"10.1145\/319344.319159"},{"doi-asserted-by":"publisher","key":"e_1_2_1_36_1","DOI":"10.1145\/323647.323632"},{"doi-asserted-by":"publisher","key":"e_1_2_1_37_1","DOI":"10.5555\/1090694.1090700"},{"doi-asserted-by":"publisher","key":"e_1_2_1_38_1","DOI":"10.5555\/3026852.3026865"},{"volume-title":"Evaluating Docker storage performance: From workloads to graph drivers. Cluster Computing","year":"2019","author":"Tarasov Vasily","key":"e_1_2_1_39_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_40_1","DOI":"10.1109\/FAS-W.2017.148"},{"unstructured":"Veritas. 2019. Veritas System Recovery. Retreived from https:\/\/www.veritas.com\/product\/backup-and-recovery\/system-recovery.  Veritas. 2019. Veritas System Recovery. Retreived from https:\/\/www.veritas.com\/product\/backup-and-recovery\/system-recovery.","key":"e_1_2_1_41_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_42_1","DOI":"10.1145\/2797022.2797024"},{"doi-asserted-by":"publisher","key":"e_1_2_1_43_1","DOI":"10.1145\/3132747.3132761"},{"doi-asserted-by":"publisher","key":"e_1_2_1_44_1","DOI":"10.5555\/2930583.2930584"},{"doi-asserted-by":"publisher","key":"e_1_2_1_45_1","DOI":"10.1145\/3032969"},{"unstructured":"ZFS. [n.d.]. Retrieved July 5 2018 from http:\/\/zfsonlinux.org\/.  ZFS. [n.d.]. Retrieved July 5 2018 from http:\/\/zfsonlinux.org\/.","key":"e_1_2_1_46_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_47_1","DOI":"10.5555\/3189759.3189771"},{"doi-asserted-by":"publisher","key":"e_1_2_1_48_1","DOI":"10.1145\/3241061"},{"volume-title":"Improving Copy-on-Write Performance in Container Storage Drivers. Storage Developer\u2019s Conference.","year":"2016","author":"Zhao Frank","key":"e_1_2_1_49_1"}],"container-title":["ACM Transactions on Storage"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3423495","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3423495","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:01:50Z","timestamp":1750197710000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3423495"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,1,29]]},"references-count":49,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2021,2,28]]}},"alternative-id":["10.1145\/3423495"],"URL":"https:\/\/doi.org\/10.1145\/3423495","relation":{},"ISSN":["1553-3077","1553-3093"],"issn-type":[{"type":"print","value":"1553-3077"},{"type":"electronic","value":"1553-3093"}],"subject":[],"published":{"date-parts":[[2021,1,29]]},"assertion":[{"value":"2020-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-09-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-01-29","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}