[Zope-dev] zcatalog and versions

Casey Duncan c.duncan@nlada.org
Thu, 27 Sep 2001 14:34:15 -0400


On Thursday 27 September 2001 12:48 pm, Oliver Bleutgen allegedly wrote:
> Hi,
> I'm resending this to zope-dev because on zope
> nobody answered, it would be very nice if someone
> could step up with a small hint.
>
>
>
> Can somenone briefly explain what exactly gets
> locked in zope 2.3.3's catalog when it tries to
> index an object which is hold in a version?
> The whole catalog?

Any Btree buckets (in the indexes) which get changed get locked, which can 
effectively lock out other changes to the catalog. This is a limitation of 
the way the indexes are implemented, for which, sadly, there is no easy fix.
>
> I found some answers which indicate that it has
> to do with the catalog when we see version lock errors
> where there shouldn't be any (from a naive POV).
> I would like to know how far reaching these problems
> are, because I'm currently rewriting an application,
> and I might be able to work around that.

I would suggest that if any objects are reindexed in a version, that no 
cataloged objects should be reindexed in any other version until that version 
is saved. 

You could also get around that by deferring the indexing until the version is 
commited, but this will take some coding on your part. Ultimately I think 
that ZCatalog should do this for you, or at least somehow let indexes have 
concurrent versioning (any volunteers?)

I am thinking about writing a fishbowl proposal for ZCatalog upgrades 
sometime next month, and this is one potential problem areas to address 
there, especially as things like the CMF make it more ubiquitous

>
> Do these problems still persist in zope 2.4.x?

AFAIK

>
> cheers,
> oliver

/---------------------------------------------------\
  Casey Duncan, Sr. Web Developer
  National Legal Aid and Defender Association
  c.duncan@nlada.org
\---------------------------------------------------/