Object Prevalence 4838487 216867171 2008-06-03T16:05:49Z Twimoki 7226010 /* External links */ '''Object Prevalence''' 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 2001.<ref name="2001-advogato"> {{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 = }} </ref> In the prevalent model, the object data is kept in [[Computer memory|memory]] in native, language-specific object format, rather than being [[Serialization|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 [[Computer memory|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 (programming language)|Java]]) * [[Bamboo.Prevalence]] ([[.NET Framework|.NET]]) * [http://sourceforge.net/projects/pypersyst/ Pypersyst] ([[Python (programming language)|Python]]) * [http://madeleine.rubyforge.org/ Madeleine] ([[Ruby programming language|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 == {{reflist}} ==See also== *[[Persistence (computer science)]] *[[Object-relational mapping]] {{comp-sci-stub}} [[Category:Persistence]]