{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:16:44Z","timestamp":1750220204415,"version":"3.41.0"},"reference-count":14,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2022,4,30]],"date-time":"2022-04-30T00:00:00Z","timestamp":1651276800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2022,4,30]]},"abstract":"<jats:p>A lever multiplies the force of a light touch, and the right software interfaces provide formidable leverage in multiple layers of code: A familiar interface enables a new persistent memory allocator to breathe new life into an enormous installed base of software and hardware. Compatibility allows a persistent heap to slide easily beneath a widely used scripting-language interpreter, thereby endowing all scripts with effortless on-demand persistence.<\/jats:p>","DOI":"10.1145\/3534855","type":"journal-article","created":{"date-parts":[[2022,5,11]],"date-time":"2022-05-11T16:34:31Z","timestamp":1652286871000},"page":"16-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Persistent Memory Allocation"],"prefix":"10.1145","volume":"20","author":[{"given":"Terence","family":"Kelly","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,5,11]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Operating Systems: Three Easy Pieces","author":"Arpaci-Dusseau R.","year":"2018","unstructured":"Arpaci-Dusseau, R., Arpaci-Dusseau, A. 2018. Operating Systems: Three Easy Pieces. Chapter 29: Lock-based Concurrent Data Structures. https:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/."},{"key":"e_1_2_1_2_1","unstructured":"The GNU Allocator. 2022; https:\/\/www.gnu.org\/software\/libc\/manual\/html_node\/The-GNU-Allocator.html."},{"key":"e_1_2_1_3_1","unstructured":"Harnie D. De Koster J. Van Cutsem T. SchemeKen: A crash-resilient Scheme interpreter. GitHub; https:\/\/github.com\/tvcutsem\/schemeken."},{"key":"e_1_2_1_4_1","unstructured":"Hauser S. 2022. Free Unix shell statistical spam filter and whitelist; http:\/\/216.92.26.41\/article\/Statistical_spam_filter.html."},{"key":"e_1_2_1_5_1","doi-asserted-by":"crossref","unstructured":"Kelly T. 2019. Persistent memory programming on conventional hardware. acmqueue 17(4); https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3358955.3358957.","DOI":"10.1145\/3358955.3358957"},{"key":"e_1_2_1_6_1","unstructured":"Kelly T. 2020. Hand-over-hand locking for highly concurrent collections. ;login: 45(3); https:\/\/www.usenix.org\/system\/files\/login\/articles\/login_fall20_14_kelly.pdf."},{"key":"e_1_2_1_7_1","doi-asserted-by":"crossref","unstructured":"Kelly T. 2021. Crashproofing the original NoSQL data store. acmqueue 18(4); https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3487019.3487353.","DOI":"10.1145\/3487019.3487353"},{"key":"e_1_2_1_8_1","doi-asserted-by":"crossref","unstructured":"Kelly T. 2020. Is Persistent Memory Persistent? Communications of the ACM 63(9); https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3397882.","DOI":"10.1145\/3397882"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2754169.2754178"},{"key":"e_1_2_1_10_1","unstructured":"Lea D. 2000. A memory allocator; http:\/\/gee.cs.oswego.edu\/dl\/html\/malloc.html and http:\/\/gee.cs.oswego.edu\/pub\/misc\/malloc.c."},{"volume-title":"Programming Persistent Memory","author":"Scargall S.","key":"e_1_2_1_11_1","unstructured":"Scargall, S. 2020. Programming Persistent Memory. Apress; https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-1-4842-4932-1.pdf."},{"key":"e_1_2_1_12_1","volume-title":"Non-Volatile Memory Workshop (NVMW); http:\/\/nvmw.ucsd.edu\/program\/.","author":"Tan Z. F.","year":"2022","unstructured":"Tan, Z. F., Li, J., Volos, H., Kelly, T. 2022. Persistent scripting. Non-Volatile Memory Workshop (NVMW); http:\/\/nvmw.ucsd.edu\/program\/."},{"key":"e_1_2_1_13_1","unstructured":"Van Ginderachter G. v8-ken: A crash-resilient JavaScript interpreter. GitHub; https:\/\/github.com\/supergillis\/v8-ken."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-60368-9_19"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3534855","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3534855","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:02:53Z","timestamp":1750186973000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3534855"}},"subtitle":["Leverage to move a world of software"],"short-title":[],"issued":{"date-parts":[[2022,4,30]]},"references-count":14,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2022,4,30]]}},"alternative-id":["10.1145\/3534855"],"URL":"https:\/\/doi.org\/10.1145\/3534855","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2022,4,30]]},"assertion":[{"value":"2022-05-11","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}