The Mjølner System: Persistent Objects
The persistence library makes it easy to store objects created during a
program execution and later retrieve these objects from another
program.
Type orthogonal
The persistence implementation is type orthogonal.
Any BETA object may be saved in a persistent store.
The only restriction is that the current implementation does
not support persistence of component object, i.e. threads cannot
be persistent.
Reachability based
The persistence model is based on reachability:
- When an object is marked as a persistent root, then all objects that
can be reached via references from the persistent root will be persistent.
This means that one store operation can make a large object structure persistent.
- When a persistent root is read from a persistent store, all objects that
can be reached from the root arer brought into memory. It is thus possible
in one operation to bring a large structure of objects into memory.
Lazy fetch
It may be inefficient to read a large collection of objects to memory.
When using the lazy fetch mechanism, only a few pages are transferred to memory
at a time. When the program access an object not in memory, a trap mechanism
will automatically read the object from the disc. The use of lazy fetch is
transparent to the programmer, who does not have to deal with low-level
details.
Platform independence
Persistence objects created on one platform can be freely interchanged with applications
on other platforms.
More Information
For further information, see
Mjølner System: Persistence - Reference Manual.