is an object-oriented, in-memory, language-specific, persistent data storage and retrieval model used in computer programming
. It is based on the techniques of system snapshotting and transaction journalling. The first usage of the term and generic, publicly-available implementation of object prevalence was Prevayler
, written for Java by Klaus Wuestefeld
In the prevalent model, the object data is kept in memory in native, language-specific object format, rather than being marshalled to an RDBMS or other data storage system. A snapshot of data is regularly saved to disk, and in addition to this, all changes are serialised and a log of transactions is also stored on disk.
- Simply keeping objects in memory in their normal, natural, language-specific format is both orders of magnitude faster and more programmer-friendly than the multiple conversions that are needed when the objects are stored and retrieved from an RDBMS.
- The application needs enough memory to hold the entire database in RAM (the "prevalent hypothesis"). Prevalence advocates claim this is continuously alleviated by decreasing RAM prices, and the fact that many business databases are small enough to fit in memory anyway.
- There is no storage standard across different languages as each language uses its own serialisation format.