[ZODB-Dev] Synchronizing connections

Jim Fulton jim@digicool.com
Sat, 17 Mar 2001 16:20:06 -0500


Andrew Kuchling wrote:
> 
> On Sat, Mar 17, 2001 at 04:02:33PM -0500, Jim Fulton wrote:
> >Yes, but this was plumbed through to ZEO only recently I'm afraid.
> >You'll need to get recent ZEO and ZODB from CVS.
> 
> OK.  It's a good incentive to actually resync with the current Zope tree.
> Thanks for the info!

You should check out the new BTrees (Zope2/lib/python/BTrees)
while your at it. These are much improved. Among other things:

  - Incorporate sets, including multi-record sets (TreeSets).

  - Generate much fewer database writes, because internal 
    nodes don't keep track of sub-node sizes. Of course, lengths
    are now expensive, which is why there's now a separate Length
    class for keeping track of lengths.

  - Lengths, BTrees (actually buckets) and sets now support
    application-level conflict resolution, which allows conflicts
    caught at commit time to be resolved in many cases without
    raising conflict errors.

BTW, ZODB now supports application-level conflict resolution.
To get the advantage of it, the storage must have extra suppport, which
is pretty easy to provide. See the changes to FileStorage. Unfortunately, 
conflicts can only be resolved at commit time.  Conflicts detected
during execution (read) still generate conflict errors.  We hope
to address this soon.

Jim

--
Jim Fulton           mailto:jim@digicool.com   Python Powered!        
Technical Director   (888) 344-4332            http://www.python.org  
Digital Creations    http://www.digicool.com   http://www.zope.org