Abstract
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 Modula-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.
Original language | English |
---|---|
Pages | 382-398 |
Number of pages | 17 |
DOIs | |
Publication status | Published - 1999 |
Externally published | Yes |
Event | Proceedings of the 1999 Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA-99 - Denver, CO, USA Duration: 1 Nov 1999 → 5 Nov 1999 |
Conference
Conference | Proceedings of the 1999 Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA-99 |
---|---|
City | Denver, CO, USA |
Period | 1/11/99 → 5/11/99 |