This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Universal Constructions for Large Objects
December 1999 (vol. 10 no. 12)
pp. 1317-1332

Abstract—We present lock-free and wait-free universal constructions for implementing large shared objects. Most previous universal constructions require processes to copy the entire object state, which is impractical for large objects. Previous attempts to address this problem require programmers to explicitly fragment large objects into smaller, more manageable pieces, paying particular attention to how such pieces are copied. In contrast, our constructions are designed to largely shield programmers from this fragmentation. Furthermore, for many objects, our constructions result in lower copying overhead than previous ones. Fragmentation is achieved in our constructions through the use of load-linked, store-conditional, and validate operations on a “large” multiword shared variable. Before presenting our constructions, we show how these operations can be efficiently implemented from similar one-word primitives.

[1] Y. Afek, D. Dauber, and D. Touitou, “Wait-free Made Fast,” Proc. 27th Annual ACM Symp. Theory of Computing, pp. 538-547, 1995.
[2] J. Anderson and M. Moir, “Universal Constructions for Multi-Object Operations,” Proc. 14th Ann. ACM Symp. Principles of Distributed Computing, pp.184-194, 1995.
[3] J. Anderson and M. Moir, “Universal Constructions for Large Objects,” Proc. Ninth Int'l Workshop on Distributed Algorithms, pp. 168-182, 1995.
[4] G. Barnes, “A Method for Implementing Lock-Free Shared Data Structures,” Proc. Fifth Ann. ACM Symp. Parallel Algorithms and Architectures, pp. 261-270, 1993.
[5] C. Filachek, Evaluation and Optimization of Lock-Free and Wait-Free Universal Constructions for Large Objects, master's thesis, Department of Computer Science, Univ. Pittsburgh, 1997.
[6] M. Herlihy and J. Wing, “Linearizability: A Correctness Condition for Concurrent Objects,” ACM Trans. Programming Languages and Systems, vol. 12, no. 3,pp. 463-492, 1990.
[7] M. Herlihy, “Wait-Free Synchronization,” ACM Trans. Programming Languages and Systems, vol. 13, no. 1,pp. 124-149, 1991.
[8] M. Herlihy,“A methodology for implementing highly concurrent data objects,” ACM Trans. Programming Languages and Systems, vol. 15, no. 5, pp. 745-770, 1993.
[9] A. Israeli and L. Rappoport, “Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives,” Proc. 13th Ann. ACM Symp. Principles of Distributed Computing, ACM, New York, pp. 151-160, Aug. 1994.
[10] M. Moir, Efficient Object Sharing in Shared-Memory Multiprocessors, Ph. D. thesis, Univ. North Carolina at Chapel Hill, 1996.
[11] M. Moir, “Practical Implementations of Synchronization Primitives,” Proc. 16th Ann. ACM Symp. Principles of Distributed Computing, pp. 219-228, 1997.
[12] M. Moir, “Transparent Support for Wait-Free Transactions,” Proc. 11th Ann. Int'l Workshop on Distributed Algorithms, pp. 305-319, 1997.
[13] N. Shavit and D. Touitou, “Software Transactional Memory,” Proc. 14th Ann. ACM Symp. Principles of Distributed Computing, pp. 204-213, 1995.

Index Terms:
Concurrency, lock-free, nonblocking synchronization, shared objects, wait-free.
Citation:
James H. Anderson, Mark Moir, "Universal Constructions for Large Objects," IEEE Transactions on Parallel and Distributed Systems, vol. 10, no. 12, pp. 1317-1332, Dec. 1999, doi:10.1109/71.819952
Usage of this product signifies your acceptance of the Terms of Use.