Or, (3) remove this test?  I am not quite sure what there is to gain
with this extra test considering all the other tests with permute()
already present in this script.

Yes, I think removing the test is the best option. It was originally
added because there was a separate code path for larger permutation
sizes that needed testing, but that's no longer the case so the test
really isn't adding anything.

Hmmm…

It is the one test which worked in actually detecting an issue, so I would
not say that it is not adding anything, on the contrary, it did prove its
value! The permute function is expected to be deterministic on different
platforms and architectures, and it is not.


In fact what it demonstrates is that the results from permute(), like
all the other pgbench random functions, will vary by platform for
sufficiently large size parameters.

Indeed, it is the case if the underlying math use doubles & large numbers. For integer-only computations it should be safe though, and permute should be in this category.

I'd agree with a two phases approach: drop the test in the short term and
deal with the PRNG later. I'm sooooo unhappy with this 48 bit PRNG that I
may be motivated enough to attempt to replace it, or at least add a better
(faster?? larger state?? same/better quality?) alternative.

I don't necessarily have a problem with that provided the replacement
is well-chosen and has a proven track record (i.e., let's not invent
our own PRNG).

Yes, obviously, I'm not daft enough to reinvent a PRNG. The question is to chose one, motivate the choice, and build the relevant API for what pg needs, possibly with some benchmarking.

For now though, I'll go remove the test.

This also removes the reminder…

--
Fabien.

Reply via email to