[pgpool-general: 8150] Re: allocation of child processes is constantly growing

Tatsuo Ishii ishii at sraoss.co.jp
Wed May 11 19:00:57 JST 2022

Each time a client connects to pgpoll child process, the pgpoll child
automatically creates a new connection to backend.

> And what happens if I turn off the connection cache at all
> (connection_cache = false)?
> Regards,
>   Nikola
> On 11.05.2022 12:49, Tatsuo Ishii wrote:
>>> Ok, I got it, thanks.
>>> That is, until the client closes the session, that is, it does not
>>> disconnect itself, it will work through a connection with the same
>>> child process. Even if it starts the next SELECT one minute after the
>>> first connection. Correctly?
>> Yes.
>>> There are a couple of questions for this.
>>> 1. Why does a client make a connection to another child process if it
>>> already has a connection to the Pgpool child process?
>> No, a client will never make a new connection if it is already
>> connecting to pgpool child process (there is an exception: query
>> cancel. If a client wants to cancel current query, it needs to create
>> a new connection to pgpool. For example, psql does this)
>>> 2. Since the connection pool cache is not shared among pgpool process,
>>> and our microservice (i.e. Pgpool client) works with only one database
>>> and with the same user, can we set the max_pool=1 parameter?
>> Sure. No problem.
>>> Regards,
>>>     Nikolay
>>> On 11.05.2022 12:26, Tatsuo Ishii wrote:
>>>>> It turns out that one connection of the client to the child process is
>>>>> only for one request to the database?
>>>> You mean "request" is a SQL command? If so, the answer is no. A client
>>>> can send as many SQL command as it wants before finishes the session
>>>> to the pgpool child process.
>>>>> Although the client has already established the connection to the
>>>>> particular child process, could the client's next request be to that
>>>>> same child process, or maybe to a different one?
>>>>> Regards,
>>>> Thus the next request will be sent to the same child process as long
>>>> as the session continues.
>>>>>     Nikola
>>>>> On 11.05.2022 12:01, Tatsuo Ishii wrote:
>>>>>> Because connection pool cache is not shared among pgpool process as
>>>>>> explained in the FAQ.
>>>>>>> And this connection remains
>>>>>> But other child process never knows the same database connection is in
>>>>>> other child process. So there's no way for the new child process to
>>>>>> reuse the connection.
>>>>>>> Thanks for the reply. But still. The situation is this.
>>>>>>> The microservice connects to the child process and through it to the
>>>>>>> database. And this connection remains. Then the same microservice with
>>>>>>> the same user to the same database creates a new connection with
>>>>>>> another child process rather than reusing the old one that already
>>>>>>> exists. Why?
>>>>>>> Regards,
>>>>>>>      Nikolay
>>>>>>> On 11.05.2022 09:29, Tatsuo Ishii wrote:
>>>>>>>> Hi,
>>>>>>>>> Hello,
>>>>>>>>> We are running an application in Kubernetes. Pgpool also works in
>>>>>>>>> Kubernetes. Each microservice has its own PostgreSQL
>>>>>>>>> database. Microservices are written in Java and connect to their
>>>>>>>>> databases via Pgpool .
>>>>>>>>> We have a very hot issue with Pgpool.
>>>>>>>>> Even in quiet mode, when there is no activity, the number of busy
>>>>>>>>> child processes and, accordingly, connections to databases is
>>>>>>>>> constantly growing on PostgreSQL and on  and does not decrease,
>>>>>>>>> reaching the limit. It turns out that microservices make new
>>>>>>>>> connections to the database each time through a new child process, and
>>>>>>>>> do not reuse the existing one.
>>>>>>>>> Could you please tell me why this is happening.
>>>>>>>>> Explain, please, the mechanism of allocation of child process in
>>>>>>>>> Pgpool for client connections.
>>>>>>>>> When an existing client connection to a child process is reused and
>>>>>>>>> when not?
>>>>>>>> Please see the FAQ:
>>>>>>>> https://pgpool.net/mediawiki/index.php/FAQ#Is_connection_pool_cache_shared_among_pgpool_process.3F
>>>>>>>> Best reagards,
>>>>>>>> --
>>>>>>>> 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