Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Free access

How to implement any concurrent data structure

Published: 20 November 2018 Publication History

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).
[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).
[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.
[4]
Fraser, K. Practical lock-freedom. Technical Report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory (Feb. 2004).
[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.
[6]
Herlihy, M. Wait-free synchronization. ACM Trans. Program. Lang. Syst. 11, 1 (Jan. 1991), 124--149.
[7]
Herlihy, M., Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008.
[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.
[9]
Lameter, C. NUMA (non-uniform memory access): an overview. ACM Queue 11, 7 (July 2013).
[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.
[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.
[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.
[13]
Michael, M.M. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 6 (June 2004), 491--504.
[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.
[15]
Pugh, W. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33, 6 (June 1990), 668--676.
[16]
Shalev, O., Shavit, N. Predictive log-synchronization. In European Conference on Computer Systems (Apr. 2006), 305--316.

Cited By

View all
  • (2021)Algorithms and Data Structures for New Models of ComputationIT Professional10.1109/MITP.2020.304285823:1(9-15)Online publication date: 1-Jan-2021
  • (2020)Robust Performance of Main Memory Data Structures by ConfigurationProceedings of the 2020 ACM SIGMOD International Conference on Management of Data10.1145/3318464.3389725(1651-1666)Online publication date: 11-Jun-2020

Recommendations

Comments

Information & Contributors

Information

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
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
Published in CACM Volume 61, Issue 12

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)519
  • Downloads (Last 6 weeks)43
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Algorithms and Data Structures for New Models of ComputationIT Professional10.1109/MITP.2020.304285823:1(9-15)Online publication date: 1-Jan-2021
  • (2020)Robust Performance of Main Memory Data Structures by ConfigurationProceedings of the 2020 ACM SIGMOD International Conference on Management of Data10.1145/3318464.3389725(1651-1666)Online publication date: 11-Jun-2020

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Digital Edition

View this article in digital edition.

Digital Edition

Magazine Site

View this article on the magazine site (external)

Magazine Site

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media