skip to main content
research-article
Free Access

How to implement any concurrent data structure

Published:20 November 2018Publication History
Skip Abstract Section

Abstract

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.

References

  1. Balakrishnan, M., Malkhi, D., Davis, J. P., Prabhakaran, V., Wei, M., Wobber, T. CORFU: a distributed shared log. ACM Trans. Comp. Syst. 31, 4 (Dec. 2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Calciu, I., Sen, S., Balakrishnan, M., Aguilera, M.K. Black-box concurrent data structures for NUMA architectures. In International Conference on Architectural Support for Programming Languages and Operating Systems (Apr. 2017), 207--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Fraser, K. Practical lock-freedom. Technical Report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory (Feb. 2004).Google ScholarGoogle Scholar
  5. Hendler, D., Incze, I., Shavit, N., Tzafrir, M. Flat combining and the synchronization-parallelism tradeoff. In ACM Symposium on Parallelism in Algorithms and Architectures (June 2010), 355--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Herlihy, M. Wait-free synchronization. ACM Trans. Program. Lang. Syst. 11, 1 (Jan. 1991), 124--149. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Herlihy, M., Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Herlihy, M.P., Wing, J.M. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 3 (July 1990), 463--492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Lameter, C. NUMA (non-uniform memory access): an overview. ACM Queue 11, 7 (July 2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mao, Y., Kohler, E., Morris, R.T. Cache craftiness for fast multicore key-value storage. In European Conference on Computer Systems (Apr. 2012), 183--196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Metreveli, Z., Zeldovich, N., Kaashoek, M.F. CPHash: a cache-partitioned hash table. In ACM Symposium on Principles and Practice of Parallel Programming (Feb. 2012), 319--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Michael, M.M. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 6 (June 2004), 491--504. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Porobic, D., Liarou, E., Tözün, P., Ailamaki, A. ATraPos: adaptive transaction processing on hardware islands. In International Conference on Data Engineering (Mar. 2014), 688--699.Google ScholarGoogle ScholarCross RefCross Ref
  15. Pugh, W. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33, 6 (June 1990), 668--676. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Shalev, O., Shavit, N. Predictive log-synchronization. In European Conference on Computer Systems (Apr. 2006), 305--316. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. How to implement any concurrent data structure

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image Communications of the ACM
            Communications of the ACM  Volume 61, Issue 12
            December 2018
            104 pages
            ISSN:0001-0782
            EISSN:1557-7317
            DOI:10.1145/3293542
            Issue’s Table of Contents

            Copyright © 2018 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 20 November 2018

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format