[ANN] Common Lisp Prevalence

Sven Van Caekenberghe <[email protected]>
Newsgroups gmane.lisp.clump
Message-ID <[email protected]>
Today, I released the first version of 'Common Lisp Prevalence', a 
proof of concept implementation of Object Prevalence for Common Lisp.

See http://homepage.mac.com/svc/prevalence/readme.html

Object Prevalence ( http://www.advogato.org/article/398.html ) is a 
simple but interesting concept first proposed by Klaus Wuestefeld in 
2001. Basically, the idea is this:
   - Most databases are only a couple of hundreds of megabytes big, 
often even less.
   - Most computers can easily take a couple of hundreds of megabytes of 
data in RAM, big servers can hold many gigabytes.
   - Mapping objects to databases is at least tedious and time 
consuming, but often also complex and error prone.
   - Let's throw away the database and just consider the domain model 
objects as the database.
   - Let's make sure we can serialize and deserialize our objects to and 
from a some presistent medium such as a file system.
   - If we store our complete set of domain model objects to a 
persistent medium we create a snapshot.
   - We query by using the data structure manipulation functionality of 
our programming language, running from RAM, queries will be extremely 
fast.
   - Let's agree to only change our object model using transaction 
objects that combine the data and the functionality to execute the 
transaction.
   - In order to preserve the ACID properties of our system, we log each 
transaction to some persistent medium by serializing it after we 
execute it. The is called the transaction log.
   - When the system goes down (intentionally or unintentionally) we 
restore its latest state by first reading in the latest snapshot and by 
re-executing each transaction from the transaction log.
   - Transactions must be deterministic and re-entrant (so they also 
need to record the current time if necessary).
   - In a multi-threaded system, transactions are globally serialized.

Sven
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.