Re: Single transaction in the tablesync worker?
Peter Smith <smithpb2250@gmail.com>
From: Peter Smith <smithpb2250@gmail.com>
To: "Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-13T06:33:26Z
Lists: pgsql-hackers
On Wed, Jan 13, 2021 at 1:07 PM Hou, Zhijie <houzj.fnst@cn.fujitsu.com> wrote: > > > Also PSA some detailed logging evidence of some test scenarios involving > > Drop/AlterSubscription: > > + Test-20210112-AlterSubscriptionRefresh-ok.txt = > > AlterSubscription_refresh which successfully drops a tablesync slot > > + Test-20210112-AlterSubscriptionRefresh-warning.txt = > > AlterSubscription_refresh gives WARNING that it cannot drop the tablesync > > slot (which no longer exists) > > + Test-20210112-DropSubscription-warning.txt = DropSubscription with a > > disassociated slot_name gives a WARNING that it cannot drop the tablesync > > slot (due to broken connection) > > Hi > > > * The AlterSubscription_refresh (v14+) is now more similar to DropSubscription w.r.t to stopping workers for any "removed" tables. > I have an issue about the above feature. > > With the patch, it seems does not stop the worker in the case of [1]. > I probably missed something, should we stop the worker in such case ? > > [1] https://www.postgresql.org/message-id/CALj2ACV%2B0UFpcZs5czYgBpujM9p0Hg1qdOZai_43OU7bqHU_xw%40mail.gmail.com > I am not exactly sure of the concern. (If the extra info below does not help can you please describe your concern with more details). This [v14] patch code/feature is only referring to the immediate stopping of only the *** "tablesync" *** worker (if any) for any/each table being removed from the subscription. It has nothing to say about the "apply" worker of the subscription, which continues replicating as before. OTOH, I think the other mail problem is not really related to the "tablesync" workers. As you can see (e.g. steps 7,8,9,10 of [2]), that problem is described as continuing over multiple transactions to replicate unexpected rows - I think this could only be done by the subscription "apply" worker, and is after the "tablesync" worker has gone away. So AFAIK these are 2 quite unrelated problems, and would be solved independently. It just happens that they are both exposed using ALTER SUBSCRIPTION ... REFRESH PUBLICATION; ---- [v14] = https://www.postgresql.org/message-id/CAHut%2BPsPO2vOp%2BP7U2szROMy15PKKGanhUrCYQ0ffpy9zG1V1A%40mail.gmail.com [2] = https://www.postgresql.org/message-id/CALj2ACV%2B0UFpcZs5czYgBpujM9p0Hg1qdOZai_43OU7bqHU_xw%40mail.gmail.com Kind Regards, Peter Smith. Fujitsu Australia
Commits
-
Fix relcache reference leak introduced by ce0fdbfe97.
- 8a4f9522d0c7 14.0 landed
-
Fix Subscription test added by commit ce0fdbfe97.
- c8b21b037814 14.0 landed
-
Allow multiple xacts during table sync in logical replication.
- ce0fdbfe9722 14.0 landed
-
Logical replication support for initial data copy
- 7c4f52409a8c 10.0 cited