[Zope3-Users] zodb objects backup

Shaun Cutts shaun at cuttshome.net
Mon Feb 27 00:03:39 EST 2006



> From: Tom Dossis [mailto:td at yoma.com.au]
> Shaun Cutts wrote:
> > But with replication, this issue is taken care of. (Too bad
replication
> > isn't part of the core functionality....)
> 
> Maybe soon..
>    http://hathawaymix.org/Software/PGStorage
> 
Great!

Another potential issue on the scalability front I had forgotten about
earlier:

How do BTrees perform under lots of concurrent updates? (I know this is
a tricky one, as implementations can get pretty complex to deal with
this.)

I note that 
http://www.zope.org/Wikis/ZODB/FrontPage/guide/node6.html#SECTION0006300
00000000000000

Says that "As with a Python dictionary or list, you should not mutate a
BTree-based data structure while iterating over it".

Does this apply only to thread-local modifications or to any
modification by anyone else? Ie, are BTrees "versioned" as the ZODB
is... if I'm iterating over a BTree in my process (in ZEO, say), and
another process modifies the BTree, does that sometimes show up in my
copy, or only after commit?

Also, wrt "ConflictError" -- is the BTree considered one object, or are
the python objects (buckets, tree structure, ...) treated
separately?....

In general, are the BTrees just written "naively" on top of ZODB, or do
they interact in some special way with the storage?

If they are just sitting on top of ZODB, it would seem that this dims
the possibility that one could use the ZODB as a Postgres replacement.

- Shaun




More information about the Zope3-users mailing list