We present lock-free and wait-free universal constructions for implementing
large shared objects. Most previous universal constructions require proces
ses to copy the entire object state. which is impractical for large objects
. Previous attempts to address this problem require programmers to explicit
ly fragment large objects into smaller, more manageable pieces, paying part
icular attention to how such pieces are copied. in contrast, our constructi
ons are designed to largely shield programmers from this fragmentation. Fur
thermore, for many objects, our constructions result in lower copying overh
ead than previous ones. Fragmentation is achieved in our constructions thro
ugh 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.