From: | "Drouvot, Bertrand" <bdrouvot(at)amazon(dot)com> |
---|---|
To: | <fabriziomello(at)gmail(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, "[pgdg] Robert Haas" <robertmhaas(at)gmail(dot)com>, Amit Khandekar <amitdkhan(dot)pg(at)gmail(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: | 2021-03-23 11:47:29 |
Message-ID: | d3bd2da0-891a-c5c5-f7c2-2cdb78080457@amazon.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 3/22/21 4:56 PM, Drouvot, Bertrand wrote:
>
>
> On 3/22/21 3:57 PM, Drouvot, Bertrand wrote:
>>
>>
>> On 3/22/21 3:10 PM, Fabrízio de Royes Mello wrote:
>>>
>>> On Thu, Mar 18, 2021 at 5:34 AM Drouvot, Bertrand
>>> <bdrouvot(at)amazon(dot)com <mailto:bdrouvot(at)amazon(dot)com>> wrote:
>>> >
>>> > Thanks!
>>> >
>>> > Just made minor changes to make it compiling again on current
>>> master (mainly had to take care of
>>> ResolveRecoveryConflictWithSnapshotFullXid() that has been
>>> introduced in e5d8a99903).
>>> >
>>> > Please find enclosed the new patch version that currently passes
>>> "make check" and the 2 associated TAP tests.
>>> >
>>>
>>> Unfortunately it still not applying to the current master:
>>>
>>> $ git am ~/Downloads/v10-000*.patch
>>> Applying: Allow logical decoding on standby.
>>> Applying: Add info in WAL records in preparation for logical slot
>>> conflict handling.
>>> error: patch failed: src/backend/access/nbtree/nbtpage.c:32
>>> error: src/backend/access/nbtree/nbtpage.c: patch does not apply
>>> Patch failed at 0002 Add info in WAL records in preparation for
>>> logical slot conflict handling.
>>> hint: Use 'git am --show-current-patch' to see the failed patch
>>> When you have resolved this problem, run "git am --continue".
>>> If you prefer to skip this patch, run "git am --skip" instead.
>>> To restore the original branch and stop patching, run "git am --abort".
>>
>> oh Indeed, it's moving so fast!
>>
>> Let me rebase it (It was already my plan to do so as I have observed
>> during the week end that the
>> v7-0003-Handle-logical-slot-conflicts-on-standby.patch
>> <https://www.postgresql.org/message-id/attachment/117031/v7-0003-Handle-logical-slot-conflicts-on-standby.patch>
>> introduced incorrect changes (that should not be there at all in
>> ReplicationSlotReserveWal()) that have been kept in v8, v9 and v10.
>>
> please find enclosed the rebase version, that also contains the fix
> for ReplicationSlotReserveWal() mentioned above.
>
> Going back to looking at the whole thread.
>
I have one remark regarding the conflicts:
The logical slots are dropped if a conflict is detected.
But, if the slot is not active before being dropped (say wal_level is
changed to < logical on master and a logical slot is not active on the
standby) then its corresponding
pg_stat_database_conflicts.confl_logicalslot is not incremented (as it
would be incremented "only" during the cancel of an "active" backend).
I think, it should be incremented in all the cases (active or not), what
do you think?
I updated the patch to handle this scenario (see the new
pgstat_send_droplogicalslot() in
v12-0003-Handle-logical-slot-conflicts-on-standby.patch).
I also added more tests in 023_standby_logical_decoding_conflicts.pl to
verify that pg_stat_database_conflicts.confl_logicalslot is updated as
expected (see check_confl_logicalslot() in
v12-0004-New-TAP-test-for-logical-decoding-on-standby.patch).
Except this remark and the associated changes, then it looks good to me.
Bertrand
Attachment | Content-Type | Size |
---|---|---|
v12-0005-Doc-changes-describing-details-about-logical-dec.patch | text/plain | 1.8 KB |
v12-0004-New-TAP-test-for-logical-decoding-on-standby.patch | text/plain | 20.9 KB |
v12-0003-Handle-logical-slot-conflicts-on-standby.patch | text/plain | 26.6 KB |
v12-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch | text/plain | 19.7 KB |
v12-0001-Allow-logical-decoding-on-standby.patch | text/plain | 9.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Christoph Berg | 2021-03-23 11:50:29 | Re: pgsql: Move tablespace path re-creation from the makefiles to pg_regres |
Previous Message | David Rowley | 2021-03-23 11:42:18 | Re: Hybrid Hash/Nested Loop joins and caching results from subplans |