From 49825f929630201ddccfba0181f735f1171cdc54 Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Thu, 4 Mar 2021 16:39:10 +1100 Subject: [PATCH v48] Tablesync early exit. Give the tablesync worker an opportunity to see if it can exit immediately (because it has already caught-up) without it needing to process a message first before discovering that. --- src/backend/replication/logical/worker.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 9e0c2dc..ad537f4 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -2323,6 +2323,16 @@ LogicalRepApplyLoop(XLogRecPtr last_received) bool ping_sent = false; TimeLineID tli; + if (am_tablesync_worker()) + { + /* + * Give the tablesync worker an opportunity see if it can immediately + * exit, instead of always handling a message (which maybe the apply + * worker could have handled). + */ + process_syncing_tables(last_received); + } + /* * Init the ApplyMessageContext which we clean up after each replication * protocol message. -- 1.8.3.1