Hi Amit, Thanks for taking a look.
On Tue, Jun 18, 2024 at 10:34 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > > The reading indicates when you set 'standby_slot_names_from_syncrep', > the TPS reduces as compared to when it is not set. It would be better > to see the data comparing 'standby_slot_names_from_syncrep' and the > existing parameter 'standby_slot_names'. I added new benchmark numbers in the reply to Bertrand, but I'll include in this thread for posterity. Writer with 5 synchronous replicas, 10 pg_recvlogical clients and pgbench all running from the same server. Command: pgbench -c 4 -j 4 -T 600 -U "ec2-user" -d postgres -r -P 5 Result with: standby_slot_names = 'replica_1,replica_2,replica_3,replica_4,replica_5' latency average = 5.600 ms latency stddev = 2.854 ms initial connection time = 5.503 ms tps = 714.148263 (without initial connection time) Result with: standby_slot_names_from_syncrep = 'true', synchronous_standby_names = 'ANY 3 (A,B,C,D,E)' latency average = 5.740 ms latency stddev = 2.543 ms initial connection time = 4.093 ms tps = 696.776249 (without initial connection time) Result with nothing set: latency average = 5.090 ms latency stddev = 3.467 ms initial connection time = 4.989 ms tps = 785.665963 (without initial connection time) > Can we make it a default > behavior that logical slots marked with a failover option will wait > for 'synchronous_standby_names' as per your patch's idea unless > 'standby_slot_names' is specified? I don't know if there is any value > in setting the 'failover' option for a slot without specifying > 'standby_slot_names', so was wondering if we can additionally tie it > to 'synchronous_standby_names'. Any better ideas? > No, I think that works pretty cleanly actually. Reserving some special keyword isn't great which is the only other thing I can think of. I've updated the patch and tests to reflect that. Attached the patch that addresses these changes. -- John Hsu - Amazon Web Services
0002-Wait-on-synchronous-replication-by-default-for-logic.patch
Description: Binary data