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 007 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 |
---|---|
Title of host publication | Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications |
Subtitle of host publication | OOPSLA 1999 |
Publisher | Association for Computing Machinery |
Pages | 382-398 |
ISBN (Print) | 1-58113-238-7 |
DOIs | |
Publication status | Published - 1 Oct 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 |