[ZODB-Dev] High Write Applications
Christian Reis
kiko at async.com.br
Thu Aug 7 01:21:58 EDT 2003
On Mon, Aug 04, 2003 at 03:03:31PM -0400, Shane Hathaway wrote:
> Right. I'm suggesting we make the back-end smarter. ZCatalogs are the
> best candidate for this. When you call catalog_object() or
> uncatalog_object(), the client would create a command object, add it to
> the transaction queue, and execute that command locally without sending
(What do you mean locally here? Local to the *client*? How/Why?)
> change events to the transaction. Upon commit, the ZEO server would
> receive that command object, execute (replay) it, and store object
> states that are potentially different from what the client saw.
>
> This would benefit operations that touch many objects. Hot spots could
> be moved into the storage server.
I've also toyed with the idea of moving IndexedCatalog indexing and
queries to the server-side. This would allow us to really work as a
database -- all query processing would be done server-side, and we could
do caching of search results, and so forth.
I'm wondering (blue-sky kind of thing) how hard this would be using the
current zRPC stuff.
> The main risk is that the ZEO server, now smarter, also has a much
> greater chance of crashing or stalling on user code. (The
> application-level conflict resolution feature introduced that risk to a
> lesser degree.) I wonder if we'd have to split the storage server into
> two processes, one of which we can feel free to restart on a whim.
That's definitely an idea -- one for processing specialized client
queries (in the *fast* backyard of the storage's filesystem), which
communicates with the main process (using what protocol?). Now which of
them would send data back to the client? ;)
Take care,
--
Christian Reis, Senior Engineer, Async Open Source, Brazil.
http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL
More information about the ZODB-Dev
mailing list