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
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
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.
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
Persistence objects created on one platform can be freely interchanged with applications
on other platforms.
For further information, see
Mjølner System: Persistence - Reference Manual.