Mostly-copying reachability-based orthogonal persistence

Antony L. Hosking, Jiawan Chen
1999 SIGPLAN notices  
We describe how reachability-based orthogonal persistence can be supported even in uncooperative implementations of languages such as C++ and Modula-3, and without modification to the compiler. Our scheme extends Bartlett's mostly-copying garbage collector to manage both transient objects and resident persistent objects, and to compute the reachability closure necessary for stabilization of the persistent heap. It has been implemented in our prototype of reachability-based persistence for
more » ... -3, yielding performance competitive with that of comparable, but non-orthogonal, persistent variants of C++. Experimental results, using the OO7 object database benchmarks, reveal that the mostly-copying approach offers a straightforward path to efficient orthogonal persistence in these uncooperative environments. The results also characterize the performance of persistence implementations based on virtual memory protection primitives. 2. Data type orthogonality: persistence should be a property independent of type. Thus, an object's type should not dictate its longevity.
doi:10.1145/320385.320427 fatcat:qiqvpkyu5jcsfkufomytfhkadm