From: | "Drouvot, Bertrand" <bertranddrouvot(dot)pg(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Jeff Davis <pgsql(at)j-davis(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Robert Haas <robertmhaas(at)gmail(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Ibrar Ahmed <ibrar(dot)ahmad(at)gmail(dot)com>, Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com>, fabriziomello(at)gmail(dot)com, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, Rahila Syed <rahila(dot)syed(at)2ndquadrant(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Minimal logical decoding on standbys |
Date: | 2023-04-05 09:11:38 |
Message-ID: | 68a47e4c-f4bb-45ae-28be-938af60b203c@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 4/5/23 8:59 AM, Amit Kapila wrote:
> On Mon, Apr 3, 2023 at 12:05 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> On further thinking, as such this shouldn't be a problem because all
> the WAL records before PARAMETER_CHANGE record will have sufficient
> information so that they can get decoded. However, with the current
> approach, the subscriber may not even receive the valid records before
> PARAMETER_CHANGE record. This is because startup process will
> terminate the walsenders while invaliding the slots and after restart
> the walsenders will exit because the corresponding slot will be an
> invalid slot. So, it is quite possible that walsender was lagging and
> wouldn't have sent records before the PARAMETER_CHANGE record making
> subscriber never receive those records that it should have received.
Agree that would behave that way.
> I don't know whether this is what one would expect.
If one change wal_level to < logical on the primary, he should at least
know that:
"
Existing
+ logical slots on standby also get invalidated if wal_level on primary is reduced to
+ less than 'logical'.
"
If the doc has been read (as the quote above is coming from 0006).
I think that what is missing is the "when" the slots are invalidated.
Maybe we could change the doc with something among those lines instead?
"
Existing logical slots on standby also get invalidated if wal_level on primary is reduced to
less than 'logical'. This is done as soon as the standby detects such a change in the WAL stream.
It means, that for walsenders that are lagging (if any), some WAL records up to the parameter change on the
primary won't be decoded".
I don't know whether this is what one would expect but that should be less of a surprise if documented.
What do you think?
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
From | Date | Subject | |
---|---|---|---|
Next Message | Hayato Kuroda (Fujitsu) | 2023-04-05 09:23:13 | RE: Time delayed LR (WAS Re: logical replication restrictions) |
Previous Message | Daniel Gustafsson | 2023-04-05 09:00:39 | Re: differential code coverage |