On Mon, 2025-08-25 at 09:58 +0200, Laurenz Albe wrote: > On Thu, 2025-08-21 at 15:20 +0000, PG Doc comments form wrote: > > Page: https://www.postgresql.org/docs/17/warm-standby.html > > > > The documentation page about Log-Shipping Standby Servers after describing > > that there are file-based log shipping and record-based log shipping > > (streaming replication) states: "It should be noted that log shipping is > > asynchronous, i.e., the WAL records are shipped after transaction commit.". > > This statement is misleading because the same page includes a section about > > configuring synchronous streaming replication. To avoid confusion, I think > > it makes sense to specify that record-based log shipping can be configured > > as either asynchronous or synchronous. > > I think that the statement you quote is not only misleading, but wrong. > WAL can get shipped before the transaction commits. Perhaps the sentence > had better be > > It should be noted that by default, log shipping is asynchronous, i.e., > the primary server does not wait until the standby receives the data.
Here is a patch for that. Yours, Laurenz Albe
From 97cb9a4e36ac035e1dcc108dd6d36033898ccd36 Mon Sep 17 00:00:00 2001 From: Laurenz Albe <laurenz.a...@cybertec.at> Date: Wed, 27 Aug 2025 14:10:41 +0200 Subject: [PATCH v1] Fix doc defining asynchronous replication The statement was factually wrong: WAL records can get shipped to the standby before the transaction commits. The key point is that the primary does not wait for the standby. Author: Laurenz Albe <laurenz.a...@cybertec.at> Discussion: https://postgr.es/m/175578964049.806.14564779365418625...@wrigleys.postgresql.org --- doc/src/sgml/high-availability.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index b47d8b4106e..334b8a4652a 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -527,8 +527,8 @@ protocol to make nodes agree on a serializable transactional order. </para> <para> - It should be noted that log shipping is asynchronous, i.e., the WAL - records are shipped after transaction commit. As a result, there is a + It should be noted that log shipping is asynchronous, i.e., the primary server does + not wait until the standby receives the data. As a result, there is a window for data loss should the primary server suffer a catastrophic failure; transactions not yet shipped will be lost. The size of the data loss window in file-based log shipping can be limited by use of the -- 2.51.0