[pgpool-committers: 10538] pgpool: Replace random() with pg_prng	random function.
    Tatsuo Ishii 
    ishii at postgresql.org
       
    Fri Jun  6 21:08:32 JST 2025
    
    
  
Replace random() with pg_prng random function.
Previously we used random() for choosing load balancing node. However
PostgreSQL has better random number generator: pg_prng.c. This commit
imports the file and use pg_prng_double() to generate random number in
range [0.0, 1.0). The seed is generated using pg_strong_random().
Other notes regarding the port:
- Some of functions in the file were not ported because they require
  additional library: pg_bitutils.c. In the future we may revisit and
  import pg_bitutils.c.
- All conditional compiling regarding "sun" or "_sun" are removed. It
  seems the platform is not used for running pgpool anymore.
- Since srandom() is not necessary any more, related code are removed
  from pgpool_main.c, child.c and pcp_worker.c.
Author: Martijn van Duren <pgpool at list.imperialat.at>, Tatsuo Ishii <ishii at postgresql.org>
Discussion: [pgpool-hackers: 4588] Shuffle random functions and use better random numbers
https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004589.html
Branch
------
master
Details
-------
https://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=1a68c6eb0b2afb470485a4d8ed5b7cb494e2e442
Modified Files
--------------
src/Makefile.am              |   3 +-
src/include/pool_type.h      |   8 +-
src/include/utils/pg_prng.h  |  68 +++++++++
src/main/pgpool_main.c       |   5 -
src/pcp_con/pcp_worker.c     |   6 +-
src/protocol/child.c         |  13 +-
src/protocol/pool_pg_utils.c |  59 +++++---
src/utils/pg_prng.c          | 329 +++++++++++++++++++++++++++++++++++++++++++
8 files changed, 445 insertions(+), 46 deletions(-)
    
    
More information about the pgpool-committers
mailing list