Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvWL2-0063oj-2l for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 08:03:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvWL1-00B7zQ-1E for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 08:03:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvWL0-00B7zH-35 for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 08:03:11 +0000 Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vvWKx-00000001GBB-30o8 for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 08:03:09 +0000 Received: by mail-vs1-xe34.google.com with SMTP id ada2fe7eead31-5feeddacbacso94281137.3 for ; Thu, 26 Feb 2026 00:03:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772092988; cv=none; d=google.com; s=arc-20240605; b=EhDDZqLkQn4WAUNvVgKYeL0GcmsCcqvJ/br/oPxYUHXRwJ+EMG7igv9H25b8ccCQdG YNlr56eDoSOp+p19bbGGzLwWXUK7b4kyoZTdKNnnCOF5wh2n8MOtZAAmt3ZU4ueVB/YO X34UhF25be7tfpkWiJPy3Sr5AOfKJlI/Iqkz92hU1BvA/+MBtlSGERhAf3ATCy24OWYb bODhrL4U8dliie+dvOPUIJX+jX+ZJkH/4Jlh7yPw82BQu8kwiCNCoYzhbTkwOvKpzjg6 uLLW/yarZWg4nZJQFtsJcpUmnwgXE9DoPgUiEORNY0bVrAs0XQLeziUqFDfPIU6KhPM2 UoxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=MCXMbwsr/R9HcGBPODvRnwtusH/gm3WMFwcJX+rM1c8=; fh=aofFfiRr4Tbwj2QCO7c15+PgOAxuJwVGE+6ROHbQ0sU=; b=AL0n/c+5piS16MqCCidoKN2sgOGY07xPw1WeoRheqyTIlISnIq86cuDXLvGwlrp+cJ zYR4J5LK7/nnaN9eGff9EQYEq9FTkiLAm7By/UAyPBx63ZmwlICdGohNDQFtlTHLzHHO EiulESQHjIYl3dpED0oQ6/H2ACz1pmrHaM9aAokEI3Zm1MJ/g1/uNKNnTawSdu0syfmk hbJip81oh30m+x0FkBEkHuOAWxXPwgN8lXP/kZXwVuEHJDrBNmx0YnzI5cCHX/3HT/YI tiZG9XBmqBlDIkN608jZQDagV1ihPit6Lm21RGz4kZejT9iWNGcTpSLmcQk/ctteA3JA QAOA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772092988; x=1772697788; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=MCXMbwsr/R9HcGBPODvRnwtusH/gm3WMFwcJX+rM1c8=; b=dkmda04yz575sRzRifI1epK+H1ZqAsHh+9rzvHGabLTbrBoAwdiQyC8AHP3LL1QkcW sitsjITrDGcULMvV96HNMdmW8TFM2VPr9vd4rXIjtoMdTs/i9XJ15qQc+/jQmEbt+96A nf99+iTPzfgwKEj3Vk8qAbYo1DFt8jZQaiIUOjY6Gn3Wrn6wV4GhcL2jxubExcl6KJ83 faA465ABdaMtynj+9Vlg5zVpML7G8/T5ZRdxRob+p+1I4LcW8s5d6Fo/xLELwRcAnl0I b0RbfZYmwtZUggjMN7Ixn4x8vLqILtsz3MGyTeE9v0rLh+K0eT4ntHh0MsjEuguPwNhI Wksg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772092988; x=1772697788; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MCXMbwsr/R9HcGBPODvRnwtusH/gm3WMFwcJX+rM1c8=; b=p2TYqAju0kiIFCbnJGqZ8YJxuYiPTnM/BCBflxPpvUhe2GrJ9w+UJUL2ccgN/+Q3lw cBO0RZ4KeJT+66agRpCWQKuvuZPC2W+0EiJZlJ0Lm241WnmRLnkiWo9iUiIRo9ZTDBDE IRoCA7tQ9Nkc4sU+OS+fIRs3blo4YlqdDXRjT9IYO9wGBpVIe0mXymzxf9DFD5QyRdbS HcfQ0xSy3WJRgB4HRxobOJpG9WLn1CqqoGpd5olEsOMiZTlWGAred6RW2kUFB32QL34t qCsLYUh1jioIoGulmXLF+t6WyMLMY8kp2UnULgt7WIOLti2X4BC3OTk5iWNos5KcsSo9 poHA== X-Forwarded-Encrypted: i=1; AJvYcCUq4SWcuzEUgZSplMrZMlqOPFYqkTlpSQlhVOxNgQ5ER/DXnWWMBSARSf+iqqWfSNFcbRjIpYLkKvHPr0Ea@lists.postgresql.org X-Gm-Message-State: AOJu0Ywg7Zj7EpNaAnqP04BPW/kKXHi0z3IsV7YDLWrADja2e3f4fabE J9f3SSLmxuPUcHQiOOneuELADbLlibOPkZKnA9wbasMU66V8t8uyX6dUgzRVUHxhI/y5FvUa4jb p/foJ2mBglZFQ/emui4riU/CNO6zXVvI= X-Gm-Gg: ATEYQzz6yMNpQ3hvrQiDO+Dsrg4A2SupsnacwwrmpBs7WyYTaZQhSY8DodRwYNZCmqz dSxzq+6rW1Hc3bQhQmTUuCjScFJFe86WDORUDjsfVyTFZ815he1pdoTrh6YVYOEqEJKbxEn7W8m BBJBRk70CFgkGGXXPnuZZkKZlcpiF8a5INzxI5kBzQqJq5IbCa5aQe94xEYwjnMiWfnk5RseFuj yw/ys6b908Et65OFUa3wA3ThBn6Lpa5ok/liWdY2xK5T+ZBqxtTj1SdXR7/yT9ux4E5Avayks6n /P8lWSE= X-Received: by 2002:a05:6102:54a9:b0:5f9:3ac4:8f6e with SMTP id ada2fe7eead31-5ff14131274mr1411575137.31.1772092988098; Thu, 26 Feb 2026 00:03:08 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Thu, 26 Feb 2026 00:02:56 -0800 X-Gm-Features: AaiRm53CMusMfWofZdUsw-KyLP30GmfPnCV-YXyVLN9h_mvPawHlDrn8OjZyePA Message-ID: Subject: Re: synchronized_standby_slots behavior inconsistent with quorum-based synchronous replication To: Amit Kapila Cc: Ashutosh Sharma , PostgreSQL-development , PostgreSQL Hackers Content-Type: multipart/alternative; boundary="000000000000108f4e064bb58dd2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000108f4e064bb58dd2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Amit, On Wed, Feb 25, 2026 at 10:20=E2=80=AFPM Amit Kapila wrote: > ... > > > > Thinking about this further, using quorum settings for > > synchronized_standby_slots can/will certainly result in at least one > > sync standby lagging behind the logical replica, making it probably > > impossible to continue with the existing logical replication setup > > after a failover to the standby that lags behind. Here is what I am > > mean: > > > > But won't that be true even for synchronous_standby_names? I think in > the case of quorum, it is the responsibility of the failover solution > to select the most recent synced standby among all the standby's > specified in synchronous_standby_names. Similarly here before failing > over logical subscriber to one of physical standby, the failover tool > needs to ensure it is switching over to the synced replica. We have > given steps in the docs [1] that could be used to identify the replica > where the subscriber can switchover. Will that address your concern? > +1, the job of failover orchestration is to ensure the new primary is caught up at least until the quorum LSN. Otherwise, it can be a durability issue where users see missing committed transactions. > BTW, I have also suggested this idea in thread [2]. I don't recall all > the ideas/points discussed in that thread but it would be good to > check that thread for any alternative ideas and points raised, so that > we don't miss anything. > Thanks for sharing the links, the approach is similar. DEFAULT to SAME_AS_SYNCREP_STANDBYS is an interesting option. I like the idea of avoiding duplicate lists unless the user wants to maintain a separate list. Thanks, Satya --000000000000108f4e064bb58dd2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Amit,

On Wed, Feb= 25, 2026 at 10:20=E2=80=AFPM Amit Kapila <amit.kapila16@gmail.com> wrote:
...
>
> Thinking about this further, using quorum settings for
> synchronized_standby_slots can/will certainly result in at least one > sync standby lagging behind the logical replica, making it probably > impossible to continue with the existing logical replication setup
> after a failover to the standby that lags behind. Here is what I am > mean:
>

But won't that be true even for synchronous_standby_names? I think in the case of quorum, it is the responsibility of the failover solution
to select the most recent synced standby among all the standby's
specified in synchronous_standby_names. Similarly here before failing
over logical subscriber to one of physical standby, the failover tool
needs to ensure it is switching over to the synced replica. We have
given steps in the docs [1] that could be used to identify the replica
where the subscriber can switchover. Will that address your concern?

+1, the job of failover orchestration is to e= nsure the new primary is caught up at least until the quorum LSN. Otherwise= , it can be a durability issue where users see missing committed transactio= ns.

=C2=A0
BTW, I have also suggested this idea in thread [2]. I don't recall all<= br> the ideas/points discussed in that thread but it would be good to
check that thread for any alternative ideas and points raised, so that
we don't miss anything.

Thanks for = sharing the links,=C2=A0 the approach is=C2=A0similar. DEFAULT to SAME_AS_S= YNCREP_STANDBYS=C2=A0 is an interesting option.=C2=A0
I like the = idea of avoiding=C2=A0duplicate lists unless the user wants to maintain a s= eparate list.

Thanks,
Satya
--000000000000108f4e064bb58dd2--