{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:35:54Z","timestamp":1750221354770,"version":"3.41.0"},"reference-count":46,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2018,3,22]],"date-time":"2018-03-22T00:00:00Z","timestamp":1521676800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"HKU Internal Research","award":["104004131"],"award-info":[{"award-number":["104004131"]}]},{"name":"Hong Kong RGC","award":["17210615"],"award-info":[{"award-number":["17210615"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2018,3,31]]},"abstract":"<jats:p>\n            While CPU architectures are incorporating many more cores to meet ever-bigger workloads, advance in fault-tolerance support is indispensable for sustaining system performance under reliability constraints. Emerging non-volatile memory technologies are yielding fast, dense, and energy-efficient NVRAM that can dethrone SSD drives for persisting data. Research on using NVRAM to enable fast in-memory data persistence is ongoing. In this work, we design and implement a persistent object framework, dubbed\n            <jats:italic>scalable in-memory persistent object (SIMPO)<\/jats:italic>\n            , which exploits NVRAM, alongside DRAM, to support efficient object persistence in highly threaded big data applications. Based on operation logging, we propose a new programming model that classifies functions into instant and deferrable groups. SIMPO features a streamlined execution model, which allows lazy evaluation of deferrable functions and is well suited to big data computing workloads that would see improved data locality and concurrency. Our log recording and checkpointing scheme is effectively optimized towards NVRAM, mitigating its long write latency through write-combining and consolidated flushing techniques. Efficient persistent object management with features including safe references and memory leak prevention is also implemented and tailored to NVRAM. We evaluate a wide range of SIMPO-enabled applications with machine learning, high-performance computing, and database workloads on an emulated hybrid memory architecture and a real hybrid memory machine with NVDIMM. Compared with native applications without persistence, experimental results show that SIMPO incurs less than 5% runtime overhead on both platforms and even gains up to 2.5\u00d7 speedup and 84% increase in throughput in highly threaded situations on the two platforms, respectively, thanks to the streamlined execution model.\n          <\/jats:p>","DOI":"10.1145\/3167972","type":"journal-article","created":{"date-parts":[[2018,3,23]],"date-time":"2018-03-23T12:29:49Z","timestamp":1521808189000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["SIMPO"],"prefix":"10.1145","volume":"15","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4672-7884","authenticated-orcid":false,"given":"Mingzhe","family":"Zhang","sequence":"first","affiliation":[{"name":"The University of Hong Kong, Pokfulam, Hong Kong"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"King Tin","family":"Lam","sequence":"additional","affiliation":[{"name":"The University of Hong Kong, Pokfulam, Hong Kong"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xin","family":"Yao","sequence":"additional","affiliation":[{"name":"The University of Hong Kong, Pokfulam, Hong Kong"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Cho-Li","family":"Wang","sequence":"additional","affiliation":[{"name":"The University of Hong Kong, Pokfulam, Hong Kong"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,3,22]]},"reference":[{"volume-title":"Proc. HotStorage.","year":"2011","author":"Akel Ameen","key":"e_1_2_1_1_1"},{"volume-title":"Levy","year":"2011","author":"Bailey Katelin","key":"e_1_2_1_2_1"},{"volume-title":"Ort","year":"2006","author":"Biswas Rahul","key":"e_1_2_1_4_1"},{"key":"e_1_2_1_5_1","unstructured":"Bill Bridge. 2005. NVM-direct library. Retrieved from https:\/\/github.com\/oracle\/NVM-Direct.  Bill Bridge. 2005. NVM-direct library. Retrieved from https:\/\/github.com\/oracle\/NVM-Direct."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/125223.125254"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660224"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.14778\/2735479.2735483"},{"volume-title":"Proc. DRC. 249--252","author":"Chen E.","key":"e_1_2_1_9_1"},{"key":"e_1_2_1_10_1","unstructured":"S. Chu. 2008. Memcachedb. Retrieved from http:\/\/memcachedb.org.  S. Chu. 2008. Memcachedb. Retrieved from http:\/\/memcachedb.org."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950380"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629589"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1327452.1327492"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/73950.73977"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.15803\/ijnc.4.1_23"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2592798.2592814"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/1299042.1299108"},{"volume-title":"Proc. MeaoW.","year":"2013","author":"Giles Ellis","key":"e_1_2_1_18_1"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/800168.811543"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1810479.1810540"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/872035.872048"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.14778\/2735496.2735502"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629619"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901325"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872392"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/TMAG.2009.2024163"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1977.229904"},{"volume-title":"Proc. ICDE.","author":"Malviya N.","key":"e_1_2_1_28_1"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3064176.3064215"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/128765.128770"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTER.2012.82"},{"volume-title":"Seltzer","year":"1999","author":"Olson Michael A.","key":"e_1_2_1_32_1"},{"volume-title":"Proc. PDSIA.","year":"1999","author":"Oyama Yoshihiro","key":"e_1_2_1_33_1"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2009.183"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"Andy Rudoff. 2016. pmem.io: Persistent Memory Programming. Retrieved from http:\/\/pmem.io\/nvml\/.  Andy Rudoff. 2016. pmem.io: Persistent Memory Programming. Retrieved from http:\/\/pmem.io\/nvml\/.","DOI":"10.1145\/3145617.3158213"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1123001"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICNC.2012.56"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1073814.1073861"},{"volume-title":"Proc. VLDB.","year":"2007","author":"Stonebraker Michael","key":"e_1_2_1_39_1"},{"volume-title":"Proc. FAST.","year":"2011","author":"Venkataraman Shivaram","key":"e_1_2_1_40_1"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950379"},{"volume-title":"Proc. HPCA.","author":"Wang L.","key":"e_1_2_1_42_1"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/195473.195506"},{"volume-title":"Proc. FAST.","year":"2015","author":"Yang Jun","key":"e_1_2_1_44_1"},{"volume-title":"Proc. USENIX.","year":"2012","author":"Zaharia Matei","key":"e_1_2_1_45_1"},{"volume-title":"Proc. HotCloud.","year":"2010","author":"Zaharia Matei","key":"e_1_2_1_46_1"},{"volume-title":"Proc. CLUSTER.","author":"Zheng Gengbin","key":"e_1_2_1_47_1"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3167972","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3167972","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:26:07Z","timestamp":1750213567000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3167972"}},"subtitle":["A Scalable In-Memory Persistent Object Framework Using NVRAM for Reliable Big Data Computing"],"short-title":[],"issued":{"date-parts":[[2018,3,22]]},"references-count":46,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,3,31]]}},"alternative-id":["10.1145\/3167972"],"URL":"https:\/\/doi.org\/10.1145\/3167972","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2018,3,22]]},"assertion":[{"value":"2017-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-03-22","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}