skip to main content
10.1145/2767386.2767415acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
research-article

Help!

Published: 21 July 2015 Publication History

Abstract

A fundamental challenge in designing concurrent data structures is obtaining efficient wait-free implementations, in which each operation completes regardless of the behavior of other operations in the system. The most common paradigm for guaranteeing wait-freedom is to employ a helping mechanism, in which, intuitively, fast processes help slow processes complete their operations. Curiously, despite its abundant use, to date, helping has not been formally defined nor was its necessity rigorously studied. In this paper we initiate a rigorous study of the interaction between wait-freedom and helping. We start with presenting a formal definition of help, capturing the intuition of one thread helping another to make progress. Next, we present families of object types for which help is necessary in order to obtain wait-freedom. In other words, we prove that for some types there are no linearizable wait-free help-free implementations. In contrast, we show that other, simple types, can be implemented in a linearizable wait-free manner without employing help. Finally, we provide a universal strong primitive for implementing wait-free data structures without using help. Specifically, given a wait-free help-free fetch&cons object, one can implement any type in a wait-free help-free manner.

References

[1]
Y. Afek, H. Attiya, D. Dolev, E. Gafni, M. Merritt, and N. Shavit. Atomic snapshots of shared memory. J. ACM, 40(4):873--890, Sept. 1993.
[2]
D. Alistarh, K. Censor-Hillel, and N. Shavit. Are lock-free concurrent algorithms practically wait-free? In Symposium on Theory of Computing, (STOC), pages 714--723, 2014.
[3]
J. Aspnes, H. Attiya, and K. Censor-Hillel. Polylogarithmic concurrent data structures from monotone circuits. J. ACM, 59(1):2:1--2:24, Mar. 2012.
[4]
H. Attiya and J. Welch. Distributed Computing: Fundamentals, Simulations and Advanced Topics (2nd edition). John Wiley Interscience, March 2004.
[5]
G. Barnes. A method for implementing lock-free shared-data structures. In SPAA, pages 261--270, 1993.
[6]
F. Ellen, P. Fatourou, E. Kosmas, A. Milani, and C. Travers. Universal constructions that ensure disjoint-access parallelism and wait-freedom. In Proceedings of the 31st ACM Symposium on Principles of Distributed Computing (PODC), pages 115--124, 2012.
[7]
F. Ellen, D. Hendler, and N. Shavit. On the inherent sequentiality of concurrent objects. SIAM J. Comput., 41(3):519--536, 2012.
[8]
P. Fatourou and N. D. Kallimanis. A highly-efficient wait-free universal construction. In SPAA, pages 325--334, 2011.
[9]
F. E. Fich, V. Luchangco, M. Moir, and N. Shavit. Obstruction-free algorithms can be practically wait-free. In 19th International Symposium on Distributed Computing (DISC), pages 78--92, 2005.
[10]
M. J. Fischer, N. A. Lynch, and M. S. Paterson. Impossibility of distributed consensus with one faulty process. J. ACM, 32(2):374--382, Apr. 1985.
[11]
W. M. Golab, L. Higham, and P. Woelfel. Linearizable implementations do not suffice for randomized distributed computation. In Proceedings of the 43rd ACM Symposium on Theory of Computing, STOC 2011, San Jose, CA, USA, 6--8 June 2011, pages 373--382, 2011.
[12]
M. Herlihy. A methodology for implementing highly concurrent data structures. In Proceedings of the Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP), pages 197--206, 1990.
[13]
M. Herlihy. Wait-free synchronization. ACM Trans. Program. Lang. Syst., 13(1):124--149, Jan. 1991.
[14]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
[15]
M. Herlihy and N. Shavit. On the nature of progress. In Proceedings of the 15th International Conference on Principles of Distributed Systems (OPODIS), pages 313--328, 2011.
[16]
M. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, 1990.
[17]
M. P. Herlihy. Impossibility and universality results for wait-free synchronization. In Proceedings of the Seventh Annual ACM Symposium on Principles of Distributed Computing (PODC), pages 276--290, 1988.
[18]
P. Jayanti, K. Tan, and S. Toueg. Time and space lower bounds for nonblocking implementations. SIAM J. Comput., 30(2):438--456, 2000.
[19]
A. Kogan and E. Petrank. Wait-free queues with multiple enqueuers and dequeuers. In PPOPP, pages 223--234, 2011.
[20]
A. Kogan and E. Petrank. A methodology for creating fast wait-free data structures. In PPOPP, pages 141--150, 2012.
[21]
L. Lamport. A new solution of dijkstra's concurrent programming problem. Commun. ACM, 17(8):453--455, Aug. 1974.
[22]
M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, Philadelphia, Pennsylvania, USA, May 23--26, 1996, pages 267--275, 1996.
[23]
S. A. Plotkin. Sticky bits and universality of consensus. In Proceedings of the Eighth Annual ACM Symposium on Principles of Distributed Computing (PODC), pages 159--175, 1989.
[24]
E. Ruppert. Determining consensus numbers. SIAM J. Comput., 30(4):1156--1168, 2000.
[25]
S. Timnat, A. Braginsky, A. Kogan, and E. Petrank. Wait-free linked-lists. In OPODIS, 2012.
[26]
S. Timnat and E. Petrank. A practical wait-free simulation for lock-free data structures. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPOPP), pages 357--368, 2014.

Cited By

View all
  • (2024)Invited Paper: Distributed Computability: A Few Results Masters Students Should KnowDistributed Computing and Intelligent Technology10.1007/978-3-031-81404-4_3(24-44)Online publication date: 31-Dec-2024
  • (2024)On Distributed Computing: A View, Physical Versus Logical Objects, and a Look at Fully Anonymous SystemsStabilization, Safety, and Security of Distributed Systems10.1007/978-3-031-74498-3_1(3-19)Online publication date: 20-Oct-2024
  • (2023)Grove: a Separation-Logic Library for Verifying Distributed SystemsProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613172(113-129)Online publication date: 23-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PODC '15: Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing
July 2015
508 pages
ISBN:9781450336178
DOI:10.1145/2767386
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 ACM 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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 July 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrent data structures
  2. help
  3. parallel algorithms
  4. progress guarantees
  5. wait-freedom

Qualifiers

  • Research-article

Funding Sources

  • Israel Science Foundation

Conference

PODC '15
Sponsor:
PODC '15: ACM Symposium on Principles of Distributed Computing
July 21 - 23, 2015
Donostia-San Sebastián, Spain

Acceptance Rates

PODC '15 Paper Acceptance Rate 45 of 191 submissions, 24%;
Overall Acceptance Rate 740 of 2,477 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)29
  • Downloads (Last 6 weeks)6
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Invited Paper: Distributed Computability: A Few Results Masters Students Should KnowDistributed Computing and Intelligent Technology10.1007/978-3-031-81404-4_3(24-44)Online publication date: 31-Dec-2024
  • (2024)On Distributed Computing: A View, Physical Versus Logical Objects, and a Look at Fully Anonymous SystemsStabilization, Safety, and Security of Distributed Systems10.1007/978-3-031-74498-3_1(3-19)Online publication date: 20-Oct-2024
  • (2023)Grove: a Separation-Logic Library for Verifying Distributed SystemsProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613172(113-129)Online publication date: 23-Oct-2023
  • (2023)The Fence Complexity of Persistent SetsStabilization, Safety, and Security of Distributed Systems10.1007/978-3-031-44274-2_3(36-51)Online publication date: 30-Sep-2023
  • (2022)Lock-free locks revisitedProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508433(278-293)Online publication date: 2-Apr-2022
  • (2022)A Fast Wait-Free Multi-Producers Single-Consumer QueueProceedings of the 23rd International Conference on Distributed Computing and Networking10.1145/3491003.3491004(77-86)Online publication date: 4-Jan-2022
  • (2022)Extending the wait-free hierarchy to multi-threaded systemsDistributed Computing10.1007/s00446-022-00425-x35:4(375-398)Online publication date: 1-Aug-2022
  • (2022)The Limits of Helping in Non-volatile Memory Data StructuresStabilization, Safety, and Security of Distributed Systems10.1007/978-3-031-21017-4_6(84-98)Online publication date: 15-Nov-2022
  • (2022)Consistent Distributed StorageundefinedOnline publication date: 16-Mar-2022
  • (2021)Distributed ComputabilityACM SIGACT News10.1145/3471469.347148452:2(92-110)Online publication date: 17-Jun-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media