Re: Replication sequence - Mailing list pgsql-general

From Paolo Saudin
Subject Re: Replication sequence
Date
Msg-id CADtZQgmtt4=+sPo_SbH5wr-LpavHgpbS78fNpxMLi8DU2kp8Fg@mail.gmail.com
Whole thread Raw
In response to Re: Replication sequence  (Jehan-Guillaume de Rorthais <jgdr@dalibo.com>)
Responses Re: Replication sequence  (Jehan-Guillaume de Rorthais <jgdr@dalibo.com>)
List pgsql-general
Il giorno mar 16 feb 2021 alle ore 10:51 Jehan-Guillaume de Rorthais <jgdr@dalibo.com> ha scritto:
On Mon, 15 Feb 2021 18:55:14 +0100
Paolo Saudin <paolosaudin@gmail.com> wrote:

> Hi all,
> I have two servers, a primary and a secondary one with a streaming replica
> setup.
> Today I noticed that some sequences are not lined-up, the replica ones are
> well ahead, while the records number is the same. How is it possible?

This is because sequences are not WAL logged on every nextval() call, but by
batch of sequence cache+32 values. As standbys are fed with WAL stream from
primary, their sequences appears jump, then stall, then jump, etc.

See:
  https://git.postgresql.org/cgit/postgresql.git/tree/src/backend/commands/sequence.c?id=f672df5fdd22dac14c98d0a0bf5bbaa6ab17f8a5#n52

  https://git.postgresql.org/cgit/postgresql.git/tree/src/backend/commands/sequence.c?id=f672df5fdd22dac14c98d0a0bf5bbaa6ab17f8a5#n661

I'm not sure if this is documented somewhere... ?

Thank you very much!
So in case the primary server crashes, and the backup one gets live, it will eventually have different sequences. I suppose there is no way to avoid this, isnt'it?
Paolo

pgsql-general by date:

Previous
From: Thomas Kellerer
Date:
Subject: Re: PostgreSQL occasionally unable to rename WAL files (NTFS)
Next
From: Jehan-Guillaume de Rorthais
Date:
Subject: Re: Replication sequence