[ZODB-Dev] Re: ReadConflictError while re-indexing big fat index
Chris Withers
chris at simplistix.co.uk
Mon Aug 2 10:55:57 EDT 2004
Casey Duncan wrote:
>>1. What is the above error message really trying to tell me?
>> (it's a pretty obscure message ;-)
>
> It is telling you that an ISet object in the PathIndex was changed and
> commited by another client since the transaction began. In order to
> protect data integrity, ZODB does not allow such "dirty reads", instead
> it raises a ReadConflict error.
Heh, now that I finally understand this, it seems like ZODB isn't as
perfect as I thought ;-) You kinda take this stuff for granted with any
RDB, the I in ACID and all that...
> You probably will need to reindex incrementally instead of in one big
> transaction. You might also need to "throttle back" the reindex speed so
> that it does not cause excessive read conflicts in the other clients.
But how do I do either of those things?
I presume you mean index objects in batches with a commit in between?
But that creates an inconsistent state surely?
>>3. (Because I figure it's kinda relevent here and I like asking
>> questions in 3's ;-)
>> When is MVCC due to land and will it help with this problem?
>
> Yup, that's the plan. MVCC is already in ZODB 3.3. Zope 2.8 will use the
> new ZODB.
Can ZODB 3.3 get transplanted into Zope 2.7?
Also, what's the status of the 2.8 release plan? Suddenly I want it a
lot now ;-)
Chris
--
Simplistix - Content Management, Zope & Python Consulting
- http://www.simplistix.co.uk
More information about the ZODB-Dev
mailing list