On Tue, Apr 9, 2024 at 5:05 PM Andres Freund <and...@anarazel.de> wrote: > ISTM that the fix here is to not use a spinlock for whatever the contention is > on, rather than improve the RNG.
I'm not convinced that we should try to improve the RNG, but surely we need to put parentheses around pg_prng_double(&pg_global_prng_state) + 0.5. IIUC, the current logic is making us multiply the spin delay by a value between 0 and 1 when what was intended was that it should be multiplied by a value between 0.5 and 1.5. If I'm reading this correctly, this was introduced here: commit 59bb147353ba274e0836d06f429176d4be47452c Author: Bruce Momjian <br...@momjian.us> Date: Fri Feb 3 12:45:47 2006 +0000 Update random() usage so ranges are inclusive/exclusive as required. -- Robert Haas EDB: http://www.enterprisedb.com