[ZODB-Dev] Re: ReadConflictError while re-indexing big fat index

Chris Withers chris at simplistix.co.uk
Mon Aug 9 16:37:57 EDT 2004


Casey Duncan wrote:
> RDBMS usually solve this problem with locks (i.e., select for update or
> select for insert). This can cause similar concurrency problems, but
> generally they just surface as poor performance to the application.

I'm sure that's preferable to errors...

Now, hangs caused by circular locking are of course less preferable ;-)

> You write some python, of course ;^) Not much though.

Done.

> That means some objects are reindexed and others aren't. Whether that is
> acceptable or not is up to you.

In is in this case but might not be in others. Also, what about when 
you're re-indexing to correct corrupt indexes? Then it isn't...

> Another option is to use versions, which will lock the catalog indexes
> that are changed in the version and prevent any concurrent updates to
> it. This will prevent read conflict errors, but will cause version lock
> errors if other clients attempt to write.

Ug. I hate that you're right here. *sigh*

> No, the persistent base class is now a new-style Python class. It
> requires a new-style extension class to go with it. As you can imagine
> this requires some serious changes to the low-level guts of Zope.

Why?

> As Jim said, we've tossed around having an alpha release soon. Currently
> I thing the only thing that is definitely broken is ZClasses, which I'm
> sure won't be a problem for you ;^)

Hehe, do we REALLY have to fix them? ;-)

Chris

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


More information about the ZODB-Dev mailing list