Re: random() (was Re: New GUC to sample log queries)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Peter Geoghegan <pg@bowt.ie>,
Michael Paquier <michael@paquier.xyz>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Adrien Nayrat <adrien.nayrat@anayrat.info>,
Dmitry Dolgov <9erthalion6@gmail.com>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Vik Fearing <vik.fearing@2ndquadrant.com>,
Robert Haas <robertmhaas@gmail.com>,
David Rowley <david.rowley@2ndquadrant.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-29T00:57:47Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@enterprisedb.com> writes: > I was going to suggest that we might be able to use a single > not-visible-to-users number that is mixed into the existing recipe, so > that we only ever read urandom once for the cluster. Yeah, I was thinking along similar lines, but there's a problem: InitProcessGlobals runs before an EXEC_BACKEND child has reconnected to shared memory, so there's no cheap way to pass state to it. No doubt there are ways around that, but I'd just as soon avoid adding complexity here. If we broke it somehow, the likely results would be silent failure of the per-process seed to be random, which might escape detection for a long time. > But it sounds > like it's not a problem, and it's probably better to just pass the > whole problem over to the OS. Yeah, that's what I'm thinking. regards, tom lane
Commits
-
Use pg_strong_random() to select each server process's random seed.
- 4203842a1cd0 12.0 landed
-
Use a separate random seed for SQL random()/setseed() functions.
- 6645ad6bdd81 12.0 landed
-
Marginal performance hacking in erand48.c.
- 6b9bba2df8d4 12.0 landed
-
Fix latent problem with pg_jrand48().
- e09046641114 12.0 landed
- f256995e33d2 10.7 landed
- d58e01f8abe2 11.2 landed
-
Silence compiler warning
- 9dc122585551 12.0 landed
-
Add log_statement_sample_rate parameter
- 88bdbd3f7460 12.0 landed