[ZODB-Dev] High Write Applications
Shane Hathaway
shane at zope.com
Mon Aug 4 14:29:27 EDT 2003
Phillip J. Eby wrote:
> The nice thing about a prevalence architecture is that it's dramatically
> simpler than a persistence architecture, provided you 1) have the memory
> and 2) don't mind architecting around command classes, and 3) don't mind
> taking forever for an application to restart. I have some thoughts
> about how to make #2 relatively transparent, but #1 and #3 are generally
> more of an issue.
Very interesting.
I have some ideas for combining persistence and prevalence, then. (I
haven't heard that word used in such a way before, but I guess it's
standard.) We could use persistence to load objects and prevalence to
store objects. That way the memory consumption and startup time stay
down while we get the potential for high writes.
Here is how it might work. ZEO clients, when possible, might send
mutation commands instead of pickles to the ZEO server. The ZEO server
would execute the mutation commands on the current object system rather
than the object system that the client saw. The server would commit the
changes and all clients would be notified of the changes made by the ZEO
server.
Under this system, it seems like conflicts could only occur in the
presence of non-"prevalent" changes, or if a command raises a
ConflictError. That should improve write volume.
Shane
More information about the ZODB-Dev
mailing list