Re: Generating random unique alphanumeric IDs

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Generating random unique alphanumeric IDs
Date: 2009-08-17 00:55:23
Message-ID: 20090817005523.GC5407@samason.me.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sun, Aug 16, 2009 at 04:53:01PM -0600, Bob Gobeille wrote:
> One way is to use a LFSR (linear feedback shift register function). I
> haven't used one in a long time but I recall generating pseudo random
> numbers that are guaranteed not to repeat after billions of
> iterations. It's very fast as well. Then translate the resulting
> integer into the character sequence of your choosing. Here is a
> reference: http://en.wikipedia.org/wiki/Linear_feedback_shift_register

Not sure if this is very applicable; LFSRs can have a very long period,
or interval before they repeat (i.e. their internal state is the same as
it was before) but individual numbers *will* be repeated.

The performance claims tend only to apply to hardware implementations,
there are much faster pseudo-random number generators available for
software. The fastest one I found recently is a SIMD implementation of
the "Mersenne Twister" called SFMT[1].

--
Sam http://samason.me.uk/

[1] http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2009-08-17 02:24:55 Re: Rapid Seek Devices (feature request)
Previous Message Tom Lane 2009-08-17 00:50:49 Re: plpgsql function to validate e-mail