On Wed, 2007-10-31 at 10:47 -0400, David Binger wrote:
> On Oct 31, 2007, at 7:35 AM, Roché Compaan wrote:
> 
> > Thanks for the explanation.
> 
> The actual insertion is very fast.  Your benchmark is dominated by
> the time to serialize the changes due to an insertion.
> 
> You should usually have just 2 instances to serialize per insertion of
> a new instance:  the instance itself and the b-node that points to the
> instance.  An insertion may also cause changes in 2 or several b-nodes,
> but those cases are less likely.
> 
> Serializing your simple instances is probably fast, but serializing
> the b-nodes appears to be taking much more time, and probably accounts
> for the large number of calls to persistent_id.  B-Nodes with higher
> branching factors will have more parts to serialize and they will be
> slower.  If you can cut the b-node branching factor in half, I bet your
> benchmark will run almost twice as fast.


I guess you are referring to the B-Tree bucket size? This is not really
configurable and one will have to recompile the C code once you modify
it. For OOBTree the max bucket size is 30.  I'll see what effect it has
on the test nevertheless.


-- 
Roché Compaan
Upfront Systems                   http://www.upfrontsystems.co.za

_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to