Re: Conundrum with scaling out of bottleneck with hot standby, PgPool-II, etc.

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Marco Colli <collimarco91(at)gmail(dot)com>
Cc: Gunther Schadow <raj(at)gusw(dot)net>, pgsql-performance(at)lists(dot)postgresql(dot)org
Subject: Re: Conundrum with scaling out of bottleneck with hot standby, PgPool-II, etc.
Date: 2020-12-23 19:09:19
Message-ID: 20201223190919.GA10547@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Wed, Dec 23, 2020 at 07:34:01PM +0100, Marco Colli wrote:
>  Hello,
>
> I asked the same question to myself in the past years.
>
> I think that the question boils down to: 
> How can I achieve unlimited database scalability? 
> Is it possible to have linear scalability (i.e. throughput increases
> proportionally to the number of nodes)?
>
> The answer is "sharding". It can be a custom solution or a database that
> supports it automatically. In this way you can actually split data across
> multiple nodes and the client contacts only the relevant servers for that data
> (based on a shard key). See also https://kubernetes-rails.com/#conclusion about
> database. Take a look at how Cassandra, MongoDB, CouchDB and Redis Cluster work
> for example: however there are huge limitations / drawbacks that come along
> with their unlimited-scalability strategies.
>
> For hot standbys, those are only useful if you have a relatively small number
> of writes compared to reads. With that slave nodes you only scale the *read*
> throughput.

Agreed. There are really two parameters:

1. percentage of reads vs writes
2. number of standbys

If you have a high value for #1, it makes sense to use pgpool, but
having only one standby doesn't buy you much; add three, and you will
see an impact. Second, if writes are high, only scaling up the primary
or adding sharding will help you. It is kind of an odd calculus, but it
makes sense.

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EnterpriseDB https://enterprisedb.com

The usefulness of a cup is in its emptiness, Bruce Lee

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Pavel Stehule 2020-12-26 04:52:44 Re: proposal: schema variables
Previous Message Marco Colli 2020-12-23 18:34:01 Re: Conundrum with scaling out of bottleneck with hot standby, PgPool-II, etc.