[ZODB-Dev] database conflict fail

Vincent Pelletier plr.vincent at gmail.com
Thu Mar 22 18:45:17 UTC 2012


Le jeudi 22 mars 2012 18:23:47, Claudiu Saftoiu a écrit :
> Ahh, now that looks promising. Are there any particularly good places to
> get documentation on that sort of thing? All I see when I google are
> mailing list archives.

See ZODB/ConflictResolution.txt . Disclaimer: I didn't read it. I read the 
code - but I expect the text file to be easier to assimilate :) .
BTrees/Length.py:Length class implements a simple _p_resolveConflict (yours 
will be even simpler).

> Also: is there any easier way to see which objects had a conflict when a
> ConflictError is raised? Currently I am doing a binary-search via
> commenting code, but I figure there must be a better way...

There should be some details in the exceptoin itself. Like, oids, currently 
commited TID and the TID transaction started with. root()._p_jar[the_oid] will 
get you the object. Then the hard part starts: guess where in the object tree 
that object is. If you have varied classes, and significant data on your 
persistent instances, it will be easy.

Ragards,
-- 
Vincent Pelletier


More information about the ZODB-Dev mailing list