Locking without blocking

作者: John Turek , Dennis Shasha , Sundeep Prakash

DOI: 10.1145/137097.137873

关键词: Distributed computingData structureDeadlockAlgorithmComputer scienceParallel computingOverhead (computing)ConcurrencyBlocking (computing)Record lockingSynchronization (computer science)Concurrent data structure

摘要: Nonblocking algorithms for concurrent data structures guarantee that a structure is always accessible. This in contrast to blocking which slow or halted process can render part all of the inaccessible other processes.This paper proposes technique convert most existing lock-based into nonblocking with same functionality. Our instruction-by-instruction transformation be applied any algorithm having following properties:•Interprocess synchronization established solely through use locks.•There no possiblity deadlock (e.g. because well-ordering among lock requests).In previous work, our requires only constant amount overhead per operation and, absence failures, it incurs penalty concurrency was available original structure.The techniques this may obviate need wholesale reinvention algorithms.

参考文章(13)
Adrian Colbrook, William E. Weihl, Eric A. Brewer, Chrysanthos Dellarocas, An Algorithm for Concurrent Search Trees. international conference on parallel processing. pp. 138- 141 ,(1991)
Yann-Hang Lee, Theodore Johnson, Sundeep Prakash, A Non-Blocking Algorithm for Shared Queues Using Compare-and-Swap. international conference on parallel processing. pp. 68- 75 ,(1991)
W.E. Weihl, P. Wang, Multi-version memory: software cache management for concurrent B-trees international parallel and distributed processing symposium. pp. 650- 655 ,(1990) , 10.1109/SPDP.1990.143621
Maurice P. Herlihy, Impossibility and universality results for wait-free synchronization principles of distributed computing. pp. 276- 290 ,(1988) , 10.1145/62546.62593
S. A. Plotkin, Sticky bits and universality of consensus Proceedings of the eighth annual ACM Symposium on Principles of distributed computing - PODC '89. pp. 159- 175 ,(1989) , 10.1145/72981.72992
R. Bayer, M. Schkolnick, Concurrency of operations on B —trees Acta Informatica. ,vol. 9, pp. 216- 226 ,(1994) , 10.1007/BF00263762
Theodore Johnson, Dennis Shasha, A framework for the performance analysis of concurrent B-tree algorithms symposium on principles of database systems. pp. 273- 287 ,(1990) , 10.1145/298514.298580
Dennis Shasha, Nathan Goodman, Concurrent search structure algorithms ACM Transactions on Database Systems. ,vol. 13, pp. 53- 90 ,(1988) , 10.1145/42201.42204
V. Srinivasan, Michael J. Carey, Performance of B-tree concurrency control algorithms international conference on management of data. ,vol. 20, pp. 416- 425 ,(1991) , 10.1145/115790.115860
Janice M. Stone, A simple and correct shared-queue algorithm using compare-and-swap conference on high performance computing (supercomputing). pp. 495- 504 ,(1990) , 10.5555/110382.110466