[ZODB-Dev] Re: What makes the ZODB slow?

Chris Withers chris at simplistix.co.uk
Tue Jun 27 04:56:45 EDT 2006


Dieter Maurer wrote:
> "PostGres" does use looks, lots of them and for different purposes.

Could ZODB use locks to gain a similar performance boost?

> The only thing for which "Postgres" does not use locks is reading.
> For this is uses MVCC (which we meanwhile adapted for the ZODB
> to get rid of "ReadConflictError"s).

Right...

> And even when locks are used, conflicts arise (they take on the
> form of deadlocks). I have seen several of them with Postgres
> -- not as deadlocks but as "concurrent update failed".

Ah good, it's not just us then ;-)

> Most of our "ConflictError"s come from the session machinery -- because
> conflict resolution works there only in a very limited way
> (due to limited history availability).

Would having more history help?

>>> Of the rest, 147 of the 177 are either Products.Transience.Transience.Increaser
>>> or Products.Transience.Transience.Length2
> 
> Yes, these are our hits -- despite the fact that our "increaser"
> is much more intelligent (and increases only rarely and not 
> on each access)

Hmmm, mind if I commit that increaser to the trunk?
There's a ZF board meeting some time soon after which you should get 
your official invite to become a committer member...

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk



More information about the ZODB-Dev mailing list