[pgpool-general: 4278] Re: Pgpool - connection hangs in DISCARD ALL

Tatsuo Ishii ishii at postgresql.org
Thu Dec 31 18:50:12 JST 2015


> Yes, reconfigured. Keep you up2date. Any fix for the logic possible?

Yes, I'm thinking now.

> BTW: Maybe this has already been discussed but if I understood it
> correctly there is no global pool available.
> http://www.pgpool.net/mediawiki/index.php/FAQ#Why_max_connection_must_satisfy_this_formula_max_connection_.3E.3D_.28num_init_children_.2A_max_pool.29_and_not_max_connection_.3E.3D_num_init_children.3F
> That means if the wrong client is selected a new backend connection is
> opened. Even when another idle client would have another idle backend
> already opened.
> Wouldn't it be better to have a global backend pool?
> 
> Also ressource usage is much higher (num_init_children * max_pool).

Not really unless you want to open many pair of user and database
concurrently.  (remember that each pool is assigned to different
combination of user and database pair. If there's only one such that
combination, the number of necessary pool is 1).

> Any ideas on that or possible changes?

One idea is, when a client connects to one of pgpool child process and
it has not opened requested connection yet, and there's other pgpool
child process has an idle and requested connection, we could move the
fd to the requested process by using a technique so called "file
descriptor passing".

Question is, in a long run, each child process is likely to have same
set of user and database. If so, above technique is useless and it
just adds unnecessary complexity.

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


More information about the pgpool-general mailing list