On Fri, Feb 25, 2011 at 12:49, Jim Fulton <j...@zope.com> wrote:
> I don't know about relstorage, but for FileStorage, commit locks are
> only held in the very last stage of packing after the vast majority of
> the work is done. Even then, the commit lock is released periodically
> to let new transactions proceed.
RelStorage does the same; it holds the commit lock for a batch of
work, then releases it according to a configurable duty cycle.
I am working on a change that'll only hold the commit lock if it is
not already taken by something else, then release it after every batch
and re-attempt to lock. It'll only pause with packing if the lock is
already taken. That way packing will go faster when there are no other
transactions occurring anyway.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org