[Zope-dev] Prevayler and "Object Prevalence"
Toby Dickenson
tdickenson@geminidataloggers.com
Mon, 3 Mar 2003 17:04:21 +0000
On Monday 03 March 2003 3:48 pm, John Ziniti wrote:
> Any ZODB developers read this article at /. and the accompanying
> one at developerWorks? Would anyone care to comment about
> the relevance/comparisons of "prevalence" to the concepts of
> persistence used in ZODB and/or ZEO?
I had looked at this (and the python port) briefly last year
The main advantage of ZODB over a relational approach is that it can
*automaticly* add ACID conditions to application logic objects, without major
code changes. It is possible to think about your application logic and ignore
the ODB aspects. Until recently, using a relational store for objects meant
adding intrusive persistence code and breaking encapsulation.
As I understand it, prevayler preserves encapsulation, but still requires the
intrusive code changes. It relies on separating appliction logic from the
object store. Application logic can only read and write to the object store
using remote method calls, which prevayler calls persistent "command
objects". Commands are processed by a single threaded server process.
Command objects have to be persisitent because durability is provided by
writing them to a log file, and replaying commands on recovery. There is no
way to apply transactional semantics to application logic, except by cramming
all the work into one big command object.
(I hope that helps. Appologies in advance for any inaccuracies)
--
Toby Dickenson
http://www.geminidataloggers.com/people/tdickenson