[fpc-devel] I get duplicate GUIDs under Linux
Marco van de Voort
marcov at stack.nl
Thu May 29 13:25:06 CEST 2008
> On Thu, 29 May 2008, Graeme Geldenhuys wrote:
> > I'm trying to do performance testing in Firebird RDBMS using GUID's
> > and primary keys. I constantly got PK violations. I then wrote the
> > code show below to create 50,000 GUID's and add them to a StringList
> > (no duplicates allowed). Every time I run this I get a duplicate GUID
> > at iteration 1021. My original test is supposed to create 5mil
> > records, but I can't get past 1000! :-(
> As a short workaround:
> The default implementation on Linux uses a random() call to generate a
> guid, combined with a timestamp, if I recall correctly.
rtl/linux/suuid.inc reads from '/proc/sys/kernel/random/uuid' Maybe it is
not used though.
> You can use the kernel mechanism by inluding libuuid in your uses clause.
> That should ensure uniqueness.
It's unportable though. It is wiser to try to find out why the default (and
portable call) doesn't work on Linux, using a system generator.
More information about the fpc-devel