[Zope] Trying to trap ConflictError

Jonathan dev101 at magma.ca
Wed Jul 5 15:14:30 EDT 2006


----- Original Message ----- 
From: "David H" <bluepaul at earthlink.net>
To: "Jonathan" <dev101 at magma.ca>
Cc: <dieter at handshake.de>; <zope at zope.org>
Sent: Wednesday, July 05, 2006 3:00 PM
Subject: Re: [Zope] Trying to trap ConflictError


> Jonathan wrote:
>
>>
>> ----- Original Message ----- From: <dieter at handshake.de>
>> To: "Jonathan" <dev101 at magma.ca>
>> Cc: "Dennis Allison" <allison at shasta.stanford.edu>; <zope at zope.org>
>> Sent: Wednesday, July 05, 2006 2:28 PM
>> Subject: Re: [Zope] Trying to trap ConflictError
>>
>>
>>> Jonathan wrote at 2006-7-4 13:46 -0400:
>>>
>>>> ...
>>>> The image objects stored in
>>>> TemporaryStorage are never overwritten, edited etc (which is causing me 
>>>> some
>>>> confusion as to why the conflict errors are occurring)
>>>
>>>
>>> The error message tells your that the conflict is not caused by
>>> the modification of the image but the container holding your image.
>>>
>>> "BTreeFolder" already do conflict resolution -- and reduce the
>>> conflict probability by about a factor of 30 to 100 (depending on type).
>>>
>>> However, if several threads should try to add elements with the same
>>> id, then the conflict resolution cannot work.
>>> Maybe, that happens in your case?
>>
>>
>> The id for the image object is generated by the following code:
>>
>> def MakeId():
>>   time.sleep(.01)
>>   ts = string.replace(str(time.time()),'.', '')   # remove floating point 
>> '.' char
>>   return ts[-10:]
>>
>> So there should not be any collision of ids.
>>
>> I am still investing, and have found errors like:
>>
> Jonathan,
>
> I wouldn't feel safe with that.  Why not append a few random digits just 
> to be safe?

I am relatively new to python, so if there is something problematic with my 
use of the time module to create unique ids, please let me know! (just 
adding random digits seems a bit kludgy?!)

Thanks,

Jonathan



More information about the Zope mailing list