skip to main content
10.1145/137097.137873acmconferencesArticle/Chapter ViewAbstractPublication PagespodsConference Proceedingsconference-collections
Article
Free Access

Locking without blocking: making lock based concurrent data structure algorithms nonblocking

Published:01 July 1992Publication History

ABSTRACT

Nonblocking algorithms for concurrent data structures guarantee that a data structure is always accessible. This is in contrast to blocking algorithms in which a slow or halted process can render part or all of the data structure inaccessible to other processes.

This paper proposes a technique that can convert most existing lock-based blocking data structure algorithms into nonblocking algorithms with the same functionality. Our instruction-by-instruction transformation can be applied to any algorithm having the following properties:

  • •Interprocess synchronization is established solely through the use of locks.

  • •There is no possiblity of deadlock (e.g. because of a well-ordering among the lock requests).

In contrast to a previous work, our transformation requires only a constant amount of overhead per operation and, in the absence of failures, it incurs no penalty in the amount of concurrency that was available in the original data structure.

The techniques in this paper may obviate the need for a wholesale reinvention of techniques for nonblocking concurrent data structure algorithms.

References

  1. BS77.Bayer, M. and Scholnick. Concurrency of Operations on B-Trees. Acta Informatica, 9:1-21, 1977.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. CBDW91.A. Colbrook, E.A. Brewer, C.N. Dellarocas, and W.E. Weihl. An algorithm for concurrent search trees.In Proceedzngs of the #Oth International Conference on Parallel Processing, pages III138-III141, 1991.Google ScholarGoogle Scholar
  3. Her88.Herlihy, Maurice. Impossibility and Universality Results for Wait-Free Synchronization. In Proceedsngs of the Seventh Annual A CM Symposzum on Prsnciples of Distrsbuted Computing, pages 276-290, Toronto, Ontario, Canada, August 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. IBM83.IBM. IBM 370 Pmnc#ples of Operation, May 1983. Publication GA22-7000.Google ScholarGoogle Scholar
  5. JS90.Johnson, T. and D. Shasha. A Framework for the Performance Analysis of Concurrent B-Tree Algorithms. In 9th A CM SIGA CT-SIGMOD Conference on Pmncspies of Database Systems, pages 273-287, April 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. KL80.Kung, H. and P. Lehman. Concurrent Manipulation of Binary Search Trees. A CM- TODS, 5(3):339-353, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. LS81.Lehman, P. and Yao. S. Efficient Locking for Concurrent Operations on B-Trees. A CMTODS, 6(4):650-670, December 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. PLJ91.Prakash, S., Y. H. Lee, and T. Johnson. A Non-Blocking Algorithm for Shared Queues Using Compare-and-Swap. In Internatzonal Conference on Parallel Processing, 1991.Google ScholarGoogle Scholar
  9. Plo89.Plotkin, S. Sticky Bits and Universality of Consensus. In Proceedsngs of the E#ghth Annual A CM Sympossum on Prznczples of Dzs. tributed Computing, pages 159-t75, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. SC91.V. Srinivasan and M. Carey Performance of B-tree concurrency control algorithms. In Proceedings of the 1991 A CM SIGMOD Int'l Conference on Management of Data, pages 461-425. ACM, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. SG88.Shasha, D. and N. Goodman. Concurrent Search Structure Algorithms. ACM Transactions on Database Systems, 13(1):53-90, Marcia 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Sto90.Stone, J.M. A Simple and Correct Shared-Queue Algorithm Using Compareand-Swap. In Proceedings of the IEEE Computer Soczety and A CM S#gArch Supercomputzug '90 Conference, November 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ten81.Tennent, I:t Principles of Programming Languages. International Series in Computer Science. Prentice-Hall, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. WW90.W.E. Weihl and P. Wang. Multi-version memory: Software cache management for concurrent B-trees. In Proceedsngs of the 2nd IEEE Sympossum on Parallel and Dsstmbuted Process,ng, pages 650-655, 1990.Google ScholarGoogle ScholarDigital LibraryDigital Library

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
  • Published in

    cover image ACM Conferences
    PODS '92: Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
    July 1992
    392 pages
    ISBN:0897915194
    DOI:10.1145/137097

    Copyright © 1992 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 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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 July 1992

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate642of2,707submissions,24%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader