On Aug 29, 2013, at 5:08 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote:

> 
> On 29 Aug 2013, at 16:51, Esteban Lorenzano <esteba...@gmail.com> wrote:
> 
>> hi
>> 
>> well... I've never been happy on using the UUID generator for my keys, but 
>> is the fastest option I found. 
>> There are, of course, alternatives: 
>> 
>> 1) Using your own number generator (sequential, or whatever). Problem with 
>> that is that is image based, then you need a persistence strategy... then 
>> you are slow. 
>> 2) then you can use your own procedure in mongo... with same problem than (1)
>> 3) you could use timestamp. but TimeStamps are slow :(
>> 
>> anyway... I open to ideas :)
>> 
>> in the mean time, you can check if your UUID generator is using the 
>> primitive or not. In you are not, you have more possibilities of having a 
>> collision. 
> 
> Yes, the Smalltalk code (type 4 UUID) is just a random number that is 
> computed in a complex way.
> 
> What does the primitive actually do ? Is it different ?

the primitive uses the clock ticks to produce an UUID... you shouldn't have 
repeated numbers that way... but well, it depends on the platform 
implementation also. 

> 
>> Esteban
>> 
>> On Aug 29, 2013, at 11:27 AM, Sabine Knöfel <sabine.knoe...@gmail.com> wrote:
>> 
>>> Hi Esteban, All,
>>> 
>>> I was proceeding to seach for the reason of the problem I described
>>> yesterday.
>>> 
>>> I added some debugging code into VOMongoSerializer>>ensurePersisted: and the
>>> problem I described, did NOT occur.
>>> 
>>> That made the whole process slower...and I had an idea....
>>> 
>>> I was looking into >>UUIDGenerator default makeSeed.
>>> Then I tried the following code:
>>> 
>>> |theOld theNew|
>>> 
>>> 100000000 timesRepeat: [ 
>>>     theNew :=  UUIDGenerator default makeSeed.
>>>     theNew = theOld ifTrue: [self halt].
>>>     theOld := theNew]
>>> 
>>> The debugger came up! Doesn't that mean that, if the code is run very fast,
>>> there are double OIDs generated?!
>>> 
>>> In my case, the objects for country and currency are very lightweight and
>>> so, they are created very fast. Also, the error occured much more often
>>> within my fast production EC2 instance as at my (old and slow) development
>>> pc. 
>>> 
>>> Important: I work with windows and so >>makeUnixSeed returns nil... :-)
>>> 
>>> What is your opinion about that?
>>> 
>>> Sabine
>>> 
>>> 
>>> 
>>> --
>>> View this message in context: 
>>> http://forum.world.st/voyage-mongo-randomly-wrong-OIDs-tp4705396p4705603.html
>>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>> 
>> 
>> 
> 
> 


Reply via email to