|
Orthogonal persistence provides the programmer with persistence
for all data types, with minimal impact on the programing model or
development process. We motivate the addition of orthogonal
persistence to the Java[tm] platform, and show how this results in a
simple and appealing application development model. The overall
goal is to provide the illusion of continuous computation in the
face of system shutdowns, planned or unplanned. This is achieved
by checkpointing the state of the system periodically to stable
memory.
We describe how the principles of orthogonal persistence are
applied to the Java[tm] programming language and specify the small
set of changes to the Java language specification and core
libraries necessary to fulfill these principles. We describe the
rationale for our particular choices, informed by the experience
with the PJama prototype implementations. Finally, the programming
model for managing state that is external to the Java[tm] virtual
machine is discussed in detail.
|