From: | Nathan Bossart <nathan(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: pg_upgrade: Retrieve subscription count more efficiently. |
Date: | 2024-07-24 16:31:14 |
Message-ID: | E1sWetW-0011gV-DJ@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
pg_upgrade: Retrieve subscription count more efficiently.
Presently, pg_upgrade obtains the number of subscriptions in the
to-be-upgraded cluster by first querying pg_subscription in every
database for the number of subscriptions in only that database.
Then, in count_old_cluster_subscriptions(), it adds all the values
collected in the first step. This is expensive, especially when
there are many databases.
Fortunately, there is a better way to retrieve the subscription
count. Since pg_subscription is a shared catalog, we only need to
connect to a single database and query it once. This commit
modifies pg_upgrade to use that approach, which also allows us to
trim several lines of code. In passing, move the call to
get_db_subscription_count(), which has been renamed to
get_subscription_count(), from get_db_rel_and_slot_infos() to the
dedicated >= v17 section in check_and_dump_old_cluster().
We may be able to make similar improvements to
get_old_cluster_logical_slot_infos(), but that is left as a future
exercise.
Reviewed-by: Michael Paquier, Amit Kapila
Discussion: https://postgr.es/m/ZprQJv_TxccN3tkr%40nathan
Backpatch-through: 17
Branch
------
REL_17_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/73de50e13e397da8e98ed59b0fe63a00051a7128
Modified Files
--------------
src/bin/pg_upgrade/check.c | 13 +++++------
src/bin/pg_upgrade/info.c | 51 ++++++-----------------------------------
src/bin/pg_upgrade/pg_upgrade.h | 4 ++--
3 files changed, 15 insertions(+), 53 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Munro | 2024-07-24 23:31:35 | pgsql: ci: Upgrade macOS version from 13 to 14. |
Previous Message | Alvaro Herrera | 2024-07-24 12:14:58 | pgsql: Fix a missing article in the documentation |