|
This paper describes the design and implementation of the
PEVM, a new scalable, high-performance implementation of
orthogonal persistence for the Java[tm] platform (OPJ). The PEVM
is based on the Sun Microsystems Laboratories Virtual Machine for
Research (ResearchVM), which features an optimizing Just-In-Time
compiler, exact generational garbage collection, and fast thread
synchronization. It also uses a new, scalable persistent object
store designed to manage more than 80GB of objects. The PEVM is
approximately ten times faster than previous OPJ implementations
and can run significantly larger programs. It is faster than or
comparable in performance to several commercial persistence
solutions for the Java platform. Despite the PEVM's speed and
scalability, its implementation is simpler than our previous OPJ
implementation (e.g., just 43% of the VM source patches needed by
our previous OPJ implementation). Its speed and simplicity are
largely due to our pointer swizzling strategy, the ResearchVM s
exact memory management, and a few simple but effective
mechanisms. For example, we implement some key data structures in
the Java[tm] programming language since this automatically makes
them persistent.
|