- Object persistence
Object persistence 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 wasPrevayler , written for Java byKlaus Wuestefeld in 2001.cite web
title = Object Prevalence
author = Klaus Wuestefeld
publisher =Advogato
url = http://www.advogato.org/article/398.html
date = 2001-12-23
accessdate = 2008-04-02
quote =]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.Advantages:
* 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.Requirement:
* 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.Disadvantages:
* There is no storage standard across different languages as each language uses its own serialisation format.Implementations
*
Prevayler (Java)
*Bamboo.Prevalence (.NET)
* [http://sourceforge.net/projects/pypersyst/ Pypersyst] (Python)
* [http://madeleine.rubyforge.org/ Madeleine] (Ruby)
* [http://common-lisp.net/project/cl-prevalence/ cl-prevalence] (Common Lisp )
*Perlvayler (Perl )
*SPrevayler (Smalltalk )External links
* "An Introduction to Object Prevalence", written by a Prevayler developer. [http://www-128.ibm.com/developerworks/library/wa-objprev/]
* 3rd-party, criticism about Prevayler. [http://fishbowl.pastiche.org/2003/04/11/prevayling_stupidity]
* [http://www.prevayler.org/wiki.jsp?topic=PrevaylerPortsToOtherLanguages Complete list of object prevalence implementations for various languages] "(temporarily unavailable)"
* "Object Prevalence": Original Article by Klaus Wuestefeld published in 2001 on Advogato. [http://www.advogato.org/article/398.html]References
ee also
*
Persistence (computer science)
*Object-relational mapping
Wikimedia Foundation. 2010.