Re: How to generate unique hash-type id?

From: Adrian von Bidder <avbidder(at)fortytwo(dot)ch>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: How to generate unique hash-type id?
Date: 2010-01-29 09:31:44
Message-ID: 201001291031.48940@fortytwo.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Hi,

On Friday 29 January 2010 09.20:33 Joe Kramer wrote:
> I need to generate unique id which is not guessable unlike
> serial(integer) type. I need an id in format like md5 hash of random
> number.
> On top of that I need this id to be unique across multiple tables.

Have a look at http://www.postgresql.org/docs/8.3/static/uuid-ossp.html

The usual approach is that (given a sensible random generator[1]) uuid are
assumed to be unique[2]. So you don't need to check because the probability
of collisions is so small that for practical purposes you can just ignore
it.

(If your engineer's mind balks at this, consider that you're trusting this
already when you use digital cryptography / signatures, for example https
certificates.)

I haven't looked at this module myself, but from the experience with
generating gpg keys on an appliance: if you need lots of randomness, the
geneation of random numbers might be your bottleneck. OTOH, our platform
didn't have disks and usually there was no network traffic while your
average db server has both, and on many systems there is a hardware random
generator, so this might not be an issue.

cheers
-- vbi

[1] like, for example: http://www.dilbert.com/strips/comic/2001-10-25/
[2] you'll want v4 uuids
--
Linus has opinions, I have opinions, everybody else has opinions, and
the only consistency here is that most of us are wrong most of the time.
-- Andrew Morton, OLS 2004

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Magnus Hagander 2010-01-29 09:41:12 Re: How to generate unique hash-type id?
Previous Message Vincenzo Romano 2010-01-29 09:30:58 R: How to generate unique hash-type id?