From: | Peter Smith <smithpb2250(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Single transaction in the tablesync worker? |
Date: | 2021-01-18 10:43:52 |
Message-ID: | CAHut+PtfXi+0F0NkHzqP2PHQQA6oKPAnSbmExUk1fpiKsi87fA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Amit.
PSA the v16 patch for the Tablesync Solution1.
Main differences from v15:
+ Tablesync cleanups of DropSubscription/AlterSubscription_refresh are
re-implemented as as ProcessInterrupts function
====
Features:
* The tablesync slot is now permanent instead of temporary.
* The tablesync slot name is no longer tied to the Subscription slot name.
* The tablesync worker is now allowing multiple tx instead of single tx
* A new state (SUBREL_STATE_FINISHEDCOPY) is persisted after a
successful copy_table in tablesync's LogicalRepSyncTableStart.
* If a re-launched tablesync finds state SUBREL_STATE_FINISHEDCOPY
then it will bypass the initial copy_table phase.
* Now tablesync sets up replication origin tracking in
LogicalRepSyncTableStart (similar as done for the apply worker). The
origin is advanced when first created.
* Cleanup of tablesync resources:
- The tablesync slot cleanup (drop) code is added for
process_syncing_tables_for_sync functions.
- The tablesync replication origin tracking is cleaned
process_syncing_tables_for_apply.
- A tablesync function to cleanup its own slot/origin is called from
ProcessInterrupt. This is indirectly invoked by
DropSubscription/AlterSubscrition when they signal the tablesync
worker to stop.
* Updates to PG docs.
TODO / Known Issues:
* Race condition observed in "make check" may be related to this patch.
* Add test cases.
---
Please also see some test scenario logging which shows the new
tablesync cleanup function getting called as results of
Drop/AlterSUbscription.
---
Kind Regards,
Peter Smith.
Fujitsu Australia
Attachment | Content-Type | Size |
---|---|---|
Test-20210118-DropSubscriptionInterrupts.txt | text/plain | 17.2 KB |
v16-0002-Tablesync-extra-logging.patch | application/octet-stream | 6.3 KB |
Test-20210118-AlterSubscriptionInterrupts.txt | text/plain | 24.3 KB |
v16-0001-Tablesync-Solution1.patch | application/octet-stream | 38.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Victor Yegorov | 2021-01-18 11:41:09 | Re: Deleting older versions in unique indexes to avoid page splits |
Previous Message | David Geier | 2021-01-18 10:43:30 | search_plan_tree(): handling of non-leaf CustomScanState nodes causes segfault |