]> granicus.if.org Git - postgresql/commit
Arrange to generate different random sequences in the different child
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 11 Dec 2009 21:50:06 +0000 (21:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 11 Dec 2009 21:50:06 +0000 (21:50 +0000)
commit6b45e3b7aaa0a66082f61921e01f6df6e9f9253f
tree26784c41f6fe0398e13a0cc4f9abf2ea39cffbbc
parentd8e511fabbff0554cb872186c8a5de3b7715ec9b
Arrange to generate different random sequences in the different child
processes of a pgbench run, when we are using -j > 1 and are emulating
threads via fork().  Otherwise the children all inherit the same random
sequence state and produce the same random-number sequence.

In the threaded case the different threads will share one RNG state, so
they will produce different subsets of one sequence, which is maybe more
correlated than a purist would like but will not be "the same".  So we
leave that case alone.

First noticed by Takahiro Itagaki, and is also part of the explanation
for the pgbench misbehavior recently reported by Jaime Casanova.
contrib/pgbench/pgbench.c