Re: Speeding up pg_upgrade

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Speeding up pg_upgrade
Date: 2017-12-05 14:16:26
Message-ID: CA+OCxoyN-7xiyJ3Qma52Fp6chuDWnmRdJzVk_fJwOxKJT=m94g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

On Tue, Dec 5, 2017 at 11:01 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:

> As part of PGConf.Asia 2017 in Tokyo, we had an unconference topic about
> zero-downtime upgrades. After the usual discussion of using logical
> replication, Slony, and perhaps having the server be able to read old
> and new system catalogs, we discussed speeding up pg_upgrade.
>
> There are clusters that take a long time to dump the schema from the old
> cluster and recreate it in the new cluster. One idea of speeding up
> pg_upgrade would be to allow pg_upgrade to be run in two stages:
>
> 1. prevent system catalog changes while the old cluster is running, and
> dump the old cluster's schema and restore it in the new cluster
>
> 2. shut down the old cluster and copy/link the data files
>

When we were discussing this, I was thinking that the linking could be done
in phase 1 too, as that's potentially slow on a very large schema.

>
> My question is whether the schema dump/restore is time-consuming enough
> to warrant this optional more complex API, and whether people would
> support adding a server setting that prevented all system table changes?

I've certainly heard of cases where pg_upgrade takes significant amounts of
time to run on very complex databases.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2017-12-05 14:21:37 Re: Speeding up pg_upgrade
Previous Message Stephen Frost 2017-12-05 14:16:02 Re: Speeding up pg_upgrade