Persistent execution state of a Java virtual machine
Proceedings of the ACM 2000 conference on Java Grande
Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine
POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
Scalable and Recoverable Implementation of Object Evolution for the PJama1 Platform
POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
Storing a persistent transactional object heap on flash memory
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Hi-index | 0.00 |
We implemented orthogonal persistence for the Java platform byadding persistent object caching to a high-performance virtualmachine that uses exact garbage collection, the Sun MicrosystemsLaboratories Virtual Machine for Research(''ResearchVM'').1 This paper gives an overview of ourdesign for the read and write barriers needed to supportpersistence. The key design decision we made was the choice of apointer swizzling strategy. Pointer swizzling speeds upprograms by translating persistent addresses (references topersistent objects on disk) into normal virtual memory addresses inthe object cache. The swizzling technique we chose is simple(requires few source changes to the ResearchVM) and performs well(adds acceptably low CPU overhead to the ResearchVM). Ourintegration of the new barriers was considerably simplified by aninternal memory interface that the ResearchVM consistently uses,except in its Just-In-Time (JIT) compiler, to access programruntime values. Our new persistent version of the ResearchVM, thePEVM, requires just 30% of the changes necessary in our previouspersistent virtual machine implementations. It executes programswith only modest runtime overhead (typically 10-20%) compared to anunchanged ResearchVM. 1A ResearchVM is embedded in Sun'sJavaTM 2 SDK Production Release for theSolarisTM Operating Environment, available athttp://www.sun.com/solaris/java/.