Re: Replication Testing- How to introduce a Lag

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: "Subramanian,Ramachandran" <ramachandran.subramanian@alte-leipziger.de>, "pgsql-novice@lists.postgresql.org" <pgsql-novice@lists.postgresql.org>
Date: 2026-03-24T07:07:00Z
Lists: pgsql-novice
On Tue, 2026-03-24 at 06:14 +0000, Subramanian,Ramachandran wrote:
> I noticed that if I insert one row in a table at the source, the difference in LSNs
> is not 1 .  ( with a delibrately introduced delay on the apply side ), 
> 
> It is sometimes 96, sometimes 296 ( for the same table two inserts  ) .

Right, because the LSN is not a counter that increases with each new WAL
record.  It is a position in the WAL stream.  The difference between the
LSNs of two adjacent WAL records is not 1, but the byte count of the first
WAL record.

For example: if you insert a larger row, the LSN will advance more.
Note also that not all inserts will produce the same kind of WAL:
one insert might write a full page image to the WAL, while the next
a normal insert record.

> Is there a method to calculate the APPROXIMATE amount of data in ( Bytes )
> that are yet to be transfered from Source to Standby ?

That's exactly what pg_wal_lsn_diff() does.

What is your worry?  What is your ultimate goal?

Yours,
Laurenz Albe