From: Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
To: AJG <ayden@gera.co.nz>
To: pgsql-hackers@postgresql.org
Subject: Re: Improving connection scalability: GetSnapshotData()
Date: Mon, 1 Mar 2021 18:46:51 +0300
Message-ID: <4ac9a8e1-d170-7a2c-5ab5-36cbd5946a50@postgrespro.ru> (raw)
In-Reply-To: <1614447658602-0.post@n3.nabble.com>
References: <20200301083601.ews6hz5dduc3w2se@alap3.anarazel.de>
<1614447658602-0.post@n3.nabble.com>
On 27.02.2021 20:40, AJG wrote:
> Hi,
>
> Greatly appreciate if you could please reply to the following questions as
> time allows.
>
> I have seen previous discussion/patches on a built-in connection pooler. How
> does this scalability improvement, particularly idle connection improvements
> etc, affect that built-in pooler need, if any?
>
>
> Same general question about an external connection pooler in general in
> Production? Still required to route to different servers but no longer
> needed for the pooling part. as an example.
>
>
> Many Thanks!
>
Connection pooler is still needed.
The patch for GetSnapshotData() mostly improves scalability of read-only
queries and reduce contention for procarray lock.
But read-write upload cause contention for many other resources:
relation extension lock, buffer locks, tuple locks and so on.
If you run pgbench at NUMA machine with hundreds of cores, then you will
still observe significant degradation of performance with increasing
number of connection.
And this degradation will be dramatic if you replace some non-uniform
distribution of keys, for example Zipfian distribution.
>
>
>
> --
> Sent from: https://www.postgresql-archive.org/PostgreSQL-hackers-f1928748.html
>
>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: k.knizhnik@postgrespro.ru, ayden@gera.co.nz
Subject: Re: Improving connection scalability: GetSnapshotData()
In-Reply-To: <4ac9a8e1-d170-7a2c-5ab5-36cbd5946a50@postgrespro.ru>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox