[Pgpool-general] running several pgpool on the same server (pid_file_name)

npomarede at corp.free.fr npomarede at corp.free.fr
Thu Oct 30 13:13:38 UTC 2008


Hello,

For the same database, I need to have different pools (currently 2) with 
different parameters (pool's size, listening port, ...)

In order to do this, I'm changing 'logdir' so that each pgpool has is own 
directory (to store the pidfile used by /etc/init.d/pgpool for instance).

The problem is that if logdir contains a directory path that doesn't 
exist, it won't be created by pgpool, and so this needs some modifications 
to the standard init.d script to create the dir if needed.

If both pgpool are using the same logdir '/var/run/postgresql' (which 
exist, because postgres is running), then we have a problem because both 
pgpool will try to create a file name PID_FILE_NAME (pgpool.pid).

For the sockets used in 'socket_dir', we don't have a conflict, because 
the socket's filename contains the port attached to this socket, so the 
filename will be unique.

So, the only conflict is PID_FILE_NAME. Could it be possible to add a 
'pid_file_name' parameter to the config file (defaulting to pgpool.pid).

Another solution could be to create a pid_file_name of the form 
pgpool.pid.PORT instead of pgpool.pid (as already done for the socket)

This way, it would be possible to run several pgpool on the same server, 
with a few modifications of the init.d script, and with all pgpool related 
files still in /var/run/postgresql.

What do you think ? I could provide a patch for this if the idea is 
accepted.


Nicolas


More information about the Pgpool-general mailing list