{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,1]],"date-time":"2026-02-01T11:41:33Z","timestamp":1769946093894,"version":"3.49.0"},"publisher-location":"Cham","reference-count":56,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783031572661","type":"print"},{"value":"9783031572678","type":"electronic"}],"license":[{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,4,5]],"date-time":"2024-04-05T00:00:00Z","timestamp":1712275200000},"content-version":"vor","delay-in-days":95,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2024]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Software Transactional Memory (STM) is an extensively studied paradigm that provides an easy-to-use mechanism for thread safety and concurrency control. With the recent advent of byte-addressable persistent memory, a natural question to ask is whether STM systems can be adapted to support <jats:italic>failure atomicity<\/jats:italic>. In this paper, we answer this question by showing how STM can be easily integrated with Intel\u2019s Persistent Memory Development Kit (PMDK) transactional library (which we refer to as <jats:sc>txPMDK<\/jats:sc>) to obtain STM systems that are both concurrent and persistent. We demonstrate this approach using known STM systems, <jats:sc>TML<\/jats:sc> and <jats:sc>NOrec<\/jats:sc>, which when combined with <jats:sc>txPMDK<\/jats:sc> result in persistent STM systems, referred to as <jats:sc>PMDK-TML<\/jats:sc> and <jats:sc>PMDK-NORec<\/jats:sc>, respectively. However, it turns out that existing correctness criteria are insufficient for specifying the behaviour of <jats:sc>txPMDK<\/jats:sc> and our concurrent extensions. We therefore develop a new correctness criterion, <jats:italic>dynamic durable opacity<\/jats:italic>, that extends the previously defined notion of durable opacity with dynamic memory allocation. We provide a model of <jats:sc>txPMDK<\/jats:sc>, then show that this model satisfies dynamic durable opacity. Moreover, dynamic durable opacity supports concurrent transactions, thus we also use it to show correctness of both <jats:sc>PMDK-TML<\/jats:sc> and <jats:sc>PMDK-NORec<\/jats:sc>.<\/jats:p>","DOI":"10.1007\/978-3-031-57267-8_6","type":"book-chapter","created":{"date-parts":[[2024,4,4]],"date-time":"2024-04-04T16:02:01Z","timestamp":1712246521000},"page":"150-179","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Intel PMDK Transactions: Specification, Validation and Concurrency"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2319-3242","authenticated-orcid":false,"given":"Azalea","family":"Raad","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4305-6998","authenticated-orcid":false,"given":"Ori","family":"Lahav","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6735-5533","authenticated-orcid":false,"given":"John","family":"Wickerson","sequence":"additional","affiliation":[]},{"given":"Piotr","family":"Balcer","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0446-3507","authenticated-orcid":false,"given":"Brijesh","family":"Dongol","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2024,4,5]]},"reference":[{"key":"6_CR1","doi-asserted-by":"publisher","unstructured":"Armstrong, A., Dongol, B., Doherty, S.: Proving opacity via linearizability: A sound and complete method. In: Bouajjani, A., Silva, A. (eds.) FORTE. Lecture Notes in Computer Science, vol. 10321, pp. 50\u201366. Springer (2017). https:\/\/doi.org\/10.1007\/978-3-319-60225-7_4","DOI":"10.1007\/978-3-319-60225-7_4"},{"key":"6_CR2","doi-asserted-by":"publisher","unstructured":"Attiya, H., Gotsman, A., Hans, S., Rinetzky, N.: Safety of live transactions in transactional memory: TMS is necessary and sufficient. In: Kuhn, F. (ed.) DISC. Lecture Notes in Computer Science, vol.\u00a08784, pp. 376\u2013390. Springer (2014). https:\/\/doi.org\/10.1007\/978-3-662-45174-8_26","DOI":"10.1007\/978-3-662-45174-8_26"},{"key":"6_CR3","doi-asserted-by":"publisher","unstructured":"Baldassin, A., Barreto, J., Castro, D., Romano, P.: Persistent memory: A survey of programming support and implementations. ACM Comput. Surv. 54(7), 152:1\u2013152:37 (2022). https:\/\/doi.org\/10.1145\/3465402","DOI":"10.1145\/3465402"},{"key":"6_CR4","doi-asserted-by":"publisher","unstructured":"Ben-David, N., Friedman, M., Wei, Y.: Survey of persistent memory correctness conditions. CoRR abs\/2208.11114 (2022). https:\/\/doi.org\/10.48550\/ARXIV.2208.11114","DOI":"10.48550\/ARXIV.2208.11114"},{"key":"6_CR5","doi-asserted-by":"publisher","unstructured":"Bila, E., Derrick, J., Doherty, S., Dongol, B., Schellhorn, G., Wehrheim, H.: Modularising verification of durable opacity. Log. Methods Comput. Sci. 18(3) (2022). https:\/\/doi.org\/10.46298\/LMCS-18(3:7)2022","DOI":"10.46298\/LMCS-18(3:7)2022"},{"key":"6_CR6","doi-asserted-by":"publisher","unstructured":"Bila, E., Doherty, S., Dongol, B., Derrick, J., Schellhorn, G., Wehrheim, H.: Defining and verifying durable opacity: Correctness for persistent software transactional memory. In: Gotsman, A., Sokolova, A. (eds.) FORTE. Lecture Notes in Computer Science, vol. 12136, pp. 39\u201358. Springer (2020). https:\/\/doi.org\/10.1007\/978-3-030-50086-3_3","DOI":"10.1007\/978-3-030-50086-3_3"},{"key":"6_CR7","doi-asserted-by":"publisher","unstructured":"Bila, E.V., Dongol, B., Lahav, O., Raad, A., Wickerson, J.: View-based Owicki-Gries reasoning for persistent x86-TSO. In: Sergey, I. (ed.) ESOP. Lecture Notes in Computer Science, vol. 13240, pp. 234\u2013261. Springer (2022). https:\/\/doi.org\/10.1007\/978-3-030-99336-8_9","DOI":"10.1007\/978-3-030-99336-8_9"},{"key":"6_CR8","doi-asserted-by":"publisher","unstructured":"Bozdogan, K.K., Stavrakakis, D., Issa, S., Bhatotia, P.: SafePM: a sanitizer for persistent memory. In: Bromberg, Y., Kermarrec, A., Kozyrakis, C. (eds.) EuroSys. pp. 506\u2013524. ACM (2022). https:\/\/doi.org\/10.1145\/3492321.3519574","DOI":"10.1145\/3492321.3519574"},{"key":"6_CR9","doi-asserted-by":"crossref","unstructured":"Cerone, A., Gotsman, A.: Analysing snapshot isolation. In: Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing. pp. 55\u201364 (2016)","DOI":"10.1145\/2933057.2933096"},{"key":"6_CR10","doi-asserted-by":"crossref","unstructured":"Cerone, A., Gotsman, A., Yang, H.: Transaction chopping for parallel snapshot isolation. In: DISC. vol.\u00a09363, pp. 388\u2013404 (2015)","DOI":"10.1007\/978-3-662-48653-5_26"},{"key":"6_CR11","unstructured":"Chajed, T., Tassarotti, J., Theng, M., Jung, R., Kaashoek, M.F., Zeldovich, N.: GoJournal: a verified, concurrent, crash-safe journaling system. In: Brown, A.D., Lorch, J.R. (eds.) OSDI. pp. 423\u2013439. USENIX Association (2021)"},{"key":"6_CR12","doi-asserted-by":"publisher","unstructured":"Cho, K., Lee, S., Raad, A., Kang, J.: Revamping hardware persistency models: view-based and axiomatic persistency models for Intel-x86 and Armv8. In: Freund, S.N., Yahav, E. (eds.) PLDI. pp. 16\u201331. ACM (2021). https:\/\/doi.org\/10.1145\/3453483.3454027","DOI":"10.1145\/3453483.3454027"},{"key":"6_CR13","unstructured":"Choe, J.: Review and things to know: Flash memory summit 2022. TechInsights (August 2022), https:\/\/www.techinsights.com\/blog\/review-and-things-know-flash-memory-summit-2022"},{"key":"6_CR14","doi-asserted-by":"publisher","unstructured":"Chong, N., Sorensen, T., Wickerson, J.: The semantics of transactions and weak memory in x86, Power, ARM, and C++. In: Foster, J.S., Grossman, D. (eds.) Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, Philadelphia, PA, USA, June 18-22, 2018. pp. 211\u2013225. ACM (2018). https:\/\/doi.org\/10.1145\/3192366.3192373","DOI":"10.1145\/3192366.3192373"},{"key":"6_CR15","doi-asserted-by":"publisher","unstructured":"Chong, N., Sorensen, T., Wickerson, J.: The semantics of transactions and weak memory in x86, power, arm, and C++. In: Foster, J.S., Grossman, D. (eds.) Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, Philadelphia, PA, USA, June 18-22, 2018. pp. 211\u2013225. ACM (2018). https:\/\/doi.org\/10.1145\/3192366.3192373","DOI":"10.1145\/3192366.3192373"},{"key":"6_CR16","doi-asserted-by":"publisher","unstructured":"Correia, A., Felber, P., Ramalhete, P.: Romulus: Efficient algorithms for persistent transactional memory. In: Scheideler, C., Fineman, J.T. (eds.) Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, SPAA 2018, Vienna, Austria, July 16-18, 2018. pp. 271\u2013282. ACM (2018). https:\/\/doi.org\/10.1145\/3210377.3210392","DOI":"10.1145\/3210377.3210392"},{"key":"6_CR17","doi-asserted-by":"publisher","unstructured":"Dalessandro, L., Dice, D., Scott, M.L., Shavit, N., Spear, M.F.: Transactional mutex locks. In: D\u2019Ambra, P., Guarracino, M.R., Talia, D. (eds.) Euro-Par. Lecture Notes in Computer Science, vol.\u00a06272, pp. 2\u201313. Springer (2010). https:\/\/doi.org\/10.1007\/978-3-642-15291-7_2","DOI":"10.1007\/978-3-642-15291-7_2"},{"key":"6_CR18","doi-asserted-by":"publisher","unstructured":"Dalessandro, L., Spear, M.F., Scott, M.L.: Norec: streamlining STM by abolishing ownership records. In: Govindarajan, R., Padua, D.A., Hall, M.W. (eds.) PPoPP. pp. 67\u201378. ACM (2010). https:\/\/doi.org\/10.1145\/1693453.1693464","DOI":"10.1145\/1693453.1693464"},{"key":"6_CR19","doi-asserted-by":"publisher","unstructured":"Derrick, J., Doherty, S., Dongol, B., Schellhorn, G., Travkin, O., Wehrheim, H.: Mechanized proofs of opacity: a comparison of two techniques. Formal Aspects Comput. 30(5), 597\u2013625 (2018). https:\/\/doi.org\/10.1007\/s00165-017-0433-3","DOI":"10.1007\/s00165-017-0433-3"},{"key":"6_CR20","doi-asserted-by":"publisher","unstructured":"Doherty, S., Groves, L., Luchangco, V., Moir, M.: Towards formally specifying and verifying transactional memory. Formal Aspects Comput. 25(5), 769\u2013799 (2013). https:\/\/doi.org\/10.1007\/s00165-012-0225-8","DOI":"10.1007\/s00165-012-0225-8"},{"key":"6_CR21","doi-asserted-by":"publisher","unstructured":"Dongol, B., Derrick, J.: Verifying linearisability: A comparative survey. ACM Comput. Surv. 48(2), 19:1\u201319:43 (2015). https:\/\/doi.org\/10.1145\/2796550","DOI":"10.1145\/2796550"},{"key":"6_CR22","doi-asserted-by":"publisher","unstructured":"Dongol, B., Jagadeesan, R., Riely, J.: Transactions in relaxed memory architectures. Proc. ACM Program. Lang. 2(POPL) (Dec 2018). https:\/\/doi.org\/10.1145\/3158106","DOI":"10.1145\/3158106"},{"key":"6_CR23","doi-asserted-by":"publisher","unstructured":"Dongol, B., Le-Papin, J.: Checking opacity and durable opacity with FDR. In: Calinescu, R., Pasareanu, C.S. (eds.) SEFM. Lecture Notes in Computer Science, vol. 13085, pp. 222\u2013242. Springer (2021). https:\/\/doi.org\/10.1007\/978-3-030-92124-8_13","DOI":"10.1007\/978-3-030-92124-8_13"},{"key":"6_CR24","doi-asserted-by":"publisher","unstructured":"Eswaran, K.P., Gray, J., Lorie, R.A., Traiger, I.L.: The notions of consistency and predicate locks in a database system. Commun. ACM 19(11), 624\u2013633 (1976). https:\/\/doi.org\/10.1145\/360363.360369","DOI":"10.1145\/360363.360369"},{"key":"6_CR25","doi-asserted-by":"publisher","unstructured":"Fu, X., Kim, W., Shreepathi, A.P., Ismail, M., Wadkar, S., Lee, D., Min, C.: Witcher: Systematic crash consistency testing for non-volatile memory key-value stores. In: van Renesse, R., Zeldovich, N. (eds.) SOSP \u201921: ACM SIGOPS 28th Symposium on Operating Systems Principles, Virtual Event \/ Koblenz, Germany, October 26-29, 2021. pp. 100\u2013115. ACM (2021). https:\/\/doi.org\/10.1145\/3477132.3483556","DOI":"10.1145\/3477132.3483556"},{"key":"6_CR26","doi-asserted-by":"crossref","unstructured":"Gibson-Robinson, T., Armstrong, P., Boulgakov, A., Roscoe, A.: FDR3 \u2014 A Modern Refinement Checker for CSP. In: \u00c1brah\u00e1m, E., Havelund, K. (eds.) TACAS. Lecture Notes in Computer Science, vol.\u00a08413, pp. 187\u2013201 (2014)","DOI":"10.1007\/978-3-642-54862-8_13"},{"key":"6_CR27","doi-asserted-by":"publisher","unstructured":"Guerraoui, R., Kapalka, M.: Principles of Transactional Memory. Synthesis Lectures on Distributed Computing Theory, Morgan & Claypool Publishers (2010). https:\/\/doi.org\/10.2200\/S00253ED1V01Y201009DCT004","DOI":"10.2200\/S00253ED1V01Y201009DCT004"},{"key":"6_CR28","doi-asserted-by":"publisher","unstructured":"Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463\u2013492 (1990). https:\/\/doi.org\/10.1145\/78969.78972","DOI":"10.1145\/78969.78972"},{"key":"6_CR29","doi-asserted-by":"publisher","unstructured":"Hoare, C.A.R.: Communicating sequential processes (reprint). Commun. ACM 26(1), 100\u2013106 (1983). https:\/\/doi.org\/10.1145\/357980.358021","DOI":"10.1145\/357980.358021"},{"key":"6_CR30","unstructured":"Intel: Persistent memory development kit, libpmemobj library (2022), https:\/\/pmem.io\/pmdk\/libpmemobj\/"},{"key":"6_CR31","doi-asserted-by":"publisher","unstructured":"Khyzha, A., Lahav, O.: Taming x86-TSO persistency. Proc. ACM Program. Lang. 5(POPL), 1\u201329 (2021). https:\/\/doi.org\/10.1145\/3434328","DOI":"10.1145\/3434328"},{"key":"6_CR32","doi-asserted-by":"publisher","unstructured":"Krishnan, R.M., Kim, J., Mathew, A., Fu, X., Demeri, A., Min, C., Kannan, S.: Durable transactional memory can scale with timestone. In: ASPLOS. p. 335-349. ASPLOS \u201920, Association for Computing Machinery, New York, NY, USA (2020). https:\/\/doi.org\/10.1145\/3373376.3378483","DOI":"10.1145\/3373376.3378483"},{"key":"6_CR33","unstructured":"Lesani, M., Luchangco, V., Moir, M.: Putting opacity in its place. In: Workshop on the Theory of Transactional Memory (2012)"},{"key":"6_CR34","doi-asserted-by":"publisher","unstructured":"Lien, Y.E., Weinberger, P.J.: Consistency, concurrency and crash recovery. In: Lowenthal, E.I., Dale, N.B. (eds.) ACM SIGMOD International Conference on Management of Data. pp. 9\u201314. ACM (1978). https:\/\/doi.org\/10.1145\/509252.509258","DOI":"10.1145\/509252.509258"},{"key":"6_CR35","doi-asserted-by":"publisher","unstructured":"Liu, M., Zhang, M., Chen, K., Qian, X., Wu, Y., Zheng, W., Ren, J.: Dudetm: Building durable transactions with decoupling for persistent memory. In: Chen, Y., Temam, O., Carter, J. (eds.) Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2017, Xi\u2019an, China, April 8-12, 2017. pp. 329\u2013343. ACM (2017). https:\/\/doi.org\/10.1145\/3037697.3037714","DOI":"10.1145\/3037697.3037714"},{"key":"6_CR36","doi-asserted-by":"publisher","unstructured":"Liu, S., Seemakhupt, K., Wei, Y., Wenisch, T.F., Kolli, A., Khan, S.M.: Cross-failure bug detection in persistent memory programs. In: Larus, J.R., Ceze, L., Strauss, K. (eds.) ASPLOS. pp. 1187\u20131202. ACM (2020). https:\/\/doi.org\/10.1145\/3373376.3378452","DOI":"10.1145\/3373376.3378452"},{"key":"6_CR37","doi-asserted-by":"publisher","unstructured":"Liu, S., Wei, Y., Zhao, J., Kolli, A., Khan, S.M.: PMTest: A fast and flexible testing framework for persistent memory programs. In: Bahar, I., Herlihy, M., Witchel, E., Lebeck, A.R. (eds.) ASPLOS. pp. 411\u2013425. ACM (2019). https:\/\/doi.org\/10.1145\/3297858.3304015","DOI":"10.1145\/3297858.3304015"},{"key":"6_CR38","doi-asserted-by":"publisher","unstructured":"Lowe, G.: Analysing lock-free linearizable datatypes using CSP. In: Gibson-Robinson, T., Hopcroft, P.J., Lazic, R. (eds.) Concurrency, Security, and Puzzles - Essays Dedicated to Andrew William Roscoe on the Occasion of His 60th Birthday. Lecture Notes in Computer Science, vol. 10160, pp. 162\u2013184. Springer (2017). https:\/\/doi.org\/10.1007\/978-3-319-51046-0_9","DOI":"10.1007\/978-3-319-51046-0_9"},{"key":"6_CR39","doi-asserted-by":"publisher","unstructured":"Memaripour, A., Badam, A., Phanishayee, A., Zhou, Y., Alagappan, R., Strauss, K., Swanson, S.: Atomic in-place updates for non-volatile main memories with Kamino-Tx. In: Proceedings of the Twelfth European Conference on Computer Systems. p. 499-512. EuroSys \u201917, Association for Computing Machinery, New York, NY, USA (2017). https:\/\/doi.org\/10.1145\/3064176.3064215","DOI":"10.1145\/3064176.3064215"},{"key":"6_CR40","doi-asserted-by":"publisher","unstructured":"Owens, S., Sarkar, S., Sewell, P.: A better x86 memory model: x86-TSO. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs. Lecture Notes in Computer Science, vol.\u00a05674, pp. 391\u2013407. Springer (2009). https:\/\/doi.org\/10.1007\/978-3-642-03359-9_27","DOI":"10.1007\/978-3-642-03359-9_27"},{"key":"6_CR41","doi-asserted-by":"publisher","unstructured":"Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4), 631-653 (oct 1979). https:\/\/doi.org\/10.1145\/322154.322158","DOI":"10.1145\/322154.322158"},{"key":"6_CR42","doi-asserted-by":"publisher","unstructured":"Pelley, S., Chen, P.M., Wenisch, T.F.: Memory persistency: Semantics for byte-addressable nonvolatile memory technologies. IEEE Micro 35(3), 125\u2013131 (2015). https:\/\/doi.org\/10.1109\/MM.2015.46","DOI":"10.1109\/MM.2015.46"},{"key":"6_CR43","doi-asserted-by":"crossref","unstructured":"Raad, A., Lahav, O., Vafeiadis, V.: On parallel snapshot isolation and release\/acquire consistency. In: Ahmed, A. (ed.) Programming Languages and Systems. pp. 940\u2013967. Springer International Publishing, Cham (2018)","DOI":"10.1007\/978-3-319-89884-1_33"},{"key":"6_CR44","doi-asserted-by":"crossref","unstructured":"Raad, A., Lahav, O., Vafeiadis, V.: On the semantics of snapshot isolation. In: Enea, C., Piskac, R. (eds.) Verification, Model Checking, and Abstract Interpretation. pp. 1\u201323. Springer International Publishing, Cham (2019)","DOI":"10.1007\/978-3-030-11245-5_1"},{"key":"6_CR45","doi-asserted-by":"publisher","unstructured":"Raad, A., Lahav, O., Vafeiadis, V.: Persistent Owicki-Gries reasoning: a program logic for reasoning about persistent programs on Intel-x86. Proc. ACM Program. Lang. 4(OOPSLA), 151:1\u2013151:28 (2020). https:\/\/doi.org\/10.1145\/3428219","DOI":"10.1145\/3428219"},{"key":"6_CR46","unstructured":"Raad, A., Lahav, O., Wickerson, J., Balcer, P., Dongol, B.: Intel PMDK transactions: Specification, validation and concurrency (Extended version) (2023), https:\/\/doi.org\/10.48550\/arXiv.2312.13828"},{"key":"6_CR47","doi-asserted-by":"publisher","unstructured":"Raad, A., Lahav, O., Wickerson, J., Balcer, P., Dongol, B.: Intel PMDK transactions: Specification, validation and concurrency (Artifact) (2024). https:\/\/doi.org\/10.6084\/m9.figshare.24988173.v1","DOI":"10.6084\/m9.figshare.24988173.v1"},{"key":"6_CR48","doi-asserted-by":"publisher","unstructured":"Raad, A., Maranget, L., Vafeiadis, V.: Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal stores. Proc. ACM Program. Lang. 6(POPL), 1\u201331 (2022). https:\/\/doi.org\/10.1145\/3498683","DOI":"10.1145\/3498683"},{"key":"6_CR49","doi-asserted-by":"publisher","unstructured":"Raad, A., Wickerson, J., Neiger, G., Vafeiadis, V.: Persistency semantics of the Intel-x86 architecture. Proc. ACM Program. Lang. 4(POPL), 11:1\u201311:31 (2020). https:\/\/doi.org\/10.1145\/3371079","DOI":"10.1145\/3371079"},{"key":"6_CR50","doi-asserted-by":"publisher","unstructured":"Raad, A., Wickerson, J., Vafeiadis, V.: Weak persistency semantics from the ground up: formalising the persistency semantics of ARMv8 and transactional models. Proc. ACM Program. Lang. 3(OOPSLA), 135:1\u2013135:27 (2019). https:\/\/doi.org\/10.1145\/3360561","DOI":"10.1145\/3360561"},{"key":"6_CR51","doi-asserted-by":"publisher","unstructured":"Ramalhete, P., Correia, A., Felber, P.: Efficient algorithms for persistent transactional memory. In: Lee, J., Petrank, E. (eds.) PPoPP \u201921: 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Virtual Event, Republic of Korea, February 27- March 3, 2021. pp. 1\u201315. ACM (2021). https:\/\/doi.org\/10.1145\/3437801.3441586","DOI":"10.1145\/3437801.3441586"},{"key":"6_CR52","doi-asserted-by":"publisher","unstructured":"Ramalhete, P., Correia, A., Felber, P., Cohen, N.: Onefile: A wait-free persistent transactional memory. In: 49th Annual IEEE\/IFIP International Conference on Dependable Systems and Networks, DSN 2019, Portland, OR, USA, June 24-27, 2019. pp. 151\u2013163. IEEE (2019). https:\/\/doi.org\/10.1109\/DSN.2019.00028","DOI":"10.1109\/DSN.2019.00028"},{"key":"6_CR53","unstructured":"Samsung Electronics: Samsung electronics unveils far-reaching, next-generation memory solutions at flash memory summit (2022), https:\/\/bit.ly\/samsung_flash_memory_summit"},{"key":"6_CR54","doi-asserted-by":"publisher","unstructured":"Scargall, S.: Programming Persistent Memory: A Comprehensive Guide for Developers. APress (2020). https:\/\/doi.org\/10.1007\/978-1-4842-4932-1_8","DOI":"10.1007\/978-1-4842-4932-1_8"},{"key":"6_CR55","unstructured":"Upadhyayula, U.: Introduction to persistent memory allocator and transactions (2020), https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/videos\/introduction-to-persistent-memory-allocator-and-transactions.html"},{"key":"6_CR56","doi-asserted-by":"publisher","unstructured":"Zardoshti, P., Zhou, T., Liu, Y., Spear, M.F.: Optimizing persistent memory transactions. In: 28th International Conference on Parallel Architectures and Compilation Techniques, PACT 2019, Seattle, WA, USA, September 23-26, 2019. pp. 219\u2013231. IEEE (2019). https:\/\/doi.org\/10.1109\/PACT.2019.00025","DOI":"10.1109\/PACT.2019.00025"}],"container-title":["Lecture Notes in Computer Science","Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-57267-8_6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,4,4]],"date-time":"2024-04-04T16:03:17Z","timestamp":1712246597000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-57267-8_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024]]},"ISBN":["9783031572661","9783031572678"],"references-count":56,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-57267-8_6","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024]]},"assertion":[{"value":"5 April 2024","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ESOP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"European Symposium on Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Luxembourg City","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Luxembourg","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"6 April 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11 April 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"33","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"esop2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/etaps.org\/2024\/conferences\/esop\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"72","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"25","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"1","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"35% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3.2","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"8","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"The proceedings also contain 4 artifact report that have not been part of the original submission","order":10,"name":"additional_info_on_review_process","label":"Additional Info on Review Process","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}