language: en

Universal Constructions for Large Objects *

James H. Anderson and Mark Moir
Dept. of Computer Science, University of North Carolina at Chapel Hill

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" multi-word shared variable. Before presenting our constructions, we show that these operations can be efficiently implemented from similar one-word primitives.

1 Introduction