We implemented orthogonal persistence for the Java platform by adding persistent object caching to a high-performance virtual machine that uses exact garbage collection ("EVM"). This paper gives an overview of our design for the read and write barriers needed to support persistence. The key design decision we made was the choice of a pointer swizzling strategy.Pointer swizzling speeds up programs by translating persistent addresses into normal virtual memory addresses in the object cache. The swizzling technique we chose is simple and performs well. Our integration of the new barriers was considerably simplifed by an internal memory interface that the EVM consistently uses, except in its JIT, to access program runtime values.
Related white papers
Understanding and Improving BEA WebLogic Application Server Performance With PATROL for BEA WebLogic
Many configuration settings are available to the administrator who is interested in streamlining the efficiency and improving the performance of BEA WebLogic Application Servers. This paper attempts to demonstrate that...
Introduction to the FileConnection API
This paper describes the FileConnection API. It also includes a brief description of the example MIDlet that is included in this package and additional details about the API implementation in...
When is SOAP a Good Idea in a Project
SOAP is basically an XML marshalling mechanism for RPC calls. It doesn't specify a transport although it is most commonly used with HTTP. It could also be used to encode...
Mobile Applications With J2ME
Java is one of the most exciting things currently happening to the world of mobile devices and applications. This paper is providing insight into Java technology for the application development...
Sun Java Enterprise System and Its Impact on Software Economics
When Sun introduced the Java Enterprise System it launched a bold new approach to the acquisition and integrating of enterprise software. What has been the impact on software economics and...
Building Compelling Services for the Wireless Market Using Java Technology
Java 2 Platform, Micro Edition (J2ME) is part of the Java 2 platform. While Java 2 Standard Edition (J2SE) targets desktop systems, and Java 2 Enterprise Edition (J2EE) targets the...
Mercator: a Scalable, Extensible Web Crawler
This paper describes Mercator, a scalable, extensible web crawler written entirely in Java. Scalable web crawlers are an important component of many web services, but their design is not well-documented...


