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. >>> >> >> > >