{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:31:49Z","timestamp":1750221109842,"version":"3.41.0"},"reference-count":15,"publisher":"Association for Computing Machinery (ACM)","issue":"12","license":[{"start":{"date-parts":[[2018,11,20]],"date-time":"2018-11-20T00:00:00Z","timestamp":1542672000000},"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":["Commun. ACM"],"published-print":{"date-parts":[[2018,11,20]]},"abstract":"<jats:p>We propose a method called Node Replication (NR) to implement any concurrent data structure. The method takes a single-threaded implementation of a data structure and automatically transforms it into a concurrent (thread-safe) implementation. The result is designed to work well with and harness the power of modern servers, which are complex Non-Uniform Memory Access (NUMA) machines with many processor sockets and subtle performance characteristics. Using NR requires no expertise in concurrent data structure design, and the result is free of concurrency bugs. NR represents a paradigm shift of how concurrent algorithms are developed: rather than designing for a data structure, we design for the architecture.<\/jats:p>","DOI":"10.1145\/3282506","type":"journal-article","created":{"date-parts":[[2018,11,21]],"date-time":"2018-11-21T13:48:10Z","timestamp":1542808090000},"page":"97-105","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["How to implement any concurrent data structure"],"prefix":"10.1145","volume":"61","author":[{"given":"Irina","family":"Calciu","sequence":"first","affiliation":[{"name":"VMware Research Group, Palo Alto, CA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Siddhartha","family":"Sen","sequence":"additional","affiliation":[{"name":"Microsoft Research, New York, NY"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mahesh","family":"Balakrishnan","sequence":"additional","affiliation":[{"name":"Yale University, New Haven, CT"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marcos K.","family":"Aguilera","sequence":"additional","affiliation":[{"name":"VMware Research Group, Palo Alto, CA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,11,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535930"},{"key":"e_1_2_1_2_1","volume-title":"USENIX Workshop on Hot Topics in Parallelism (June","author":"Calciu I.","year":"2013","unstructured":"Calciu , I. , Gottschlich , J.E. , Herlihy , M. Using delegation and elimination to implement a scalable NUMA-friendly stack . In USENIX Workshop on Hot Topics in Parallelism (June 2013 ). Calciu, I., Gottschlich, J.E., Herlihy, M. Using delegation and elimination to implement a scalable NUMA-friendly stack. In USENIX Workshop on Hot Topics in Parallelism (June 2013)."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037721"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1810479.1810540"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/114005.102808"},{"key":"e_1_2_1_7_1","volume-title":"The Art of Multiprocessor Programming","author":"Herlihy M.","year":"2008","unstructured":"Herlihy , M. , Shavit , N. The Art of Multiprocessor Programming . Morgan Kaufmann Publishers Inc ., San Francisco, CA, USA, 2008 . Herlihy, M., Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2508834.2513149"},{"key":"e_1_2_1_10_1","volume-title":"Symposium on Networked Systems Design and Implementation (Apr.","author":"Lim H.","year":"2014","unstructured":"Lim , H. , Han , D. , Andersen , D.G. , Kaminsky , M. MICA : a holistic approach to fast in-memory key-value storage . In Symposium on Networked Systems Design and Implementation (Apr. 2014 ), 429--444. Lim, H., Han, D., Andersen, D.G., Kaminsky, M. MICA: a holistic approach to fast in-memory key-value storage. In Symposium on Networked Systems Design and Implementation (Apr. 2014), 429--444."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168855"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145874"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2004.8"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2014.6816692"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/78973.78977"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1217935.1217965"}],"container-title":["Communications of the ACM"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3282506","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3282506","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:01:56Z","timestamp":1750208516000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3282506"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,11,20]]},"references-count":15,"journal-issue":{"issue":"12","published-print":{"date-parts":[[2018,11,20]]}},"alternative-id":["10.1145\/3282506"],"URL":"https:\/\/doi.org\/10.1145\/3282506","relation":{},"ISSN":["0001-0782","1557-7317"],"issn-type":[{"type":"print","value":"0001-0782"},{"type":"electronic","value":"1557-7317"}],"subject":[],"published":{"date-parts":[[2018,11,20]]},"assertion":[{"value":"2018-11-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}