public inbox for pgsql-docs@postgresql.org  
help / color / mirror / Atom feed
From: Jelte Fennema-Nio <postgres@jeltef.nl>
To: Babak Ghadiri <bbkghadiri6@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Subject: Re: Parallelizing startup with many databases
Date: Sat, 3 Jan 2026 01:58:25 +0100
Message-ID: <CAGECzQSu1BeW3EvRwUWGYL+EBHzDhLCRW3LKcqTU-Y4_44myZA@mail.gmail.com> (raw)
In-Reply-To: <CAEkHFKSxYO7Ryv_UNNGSe88zosg0_Q_dop6hXN0oCoYK28EZtA@mail.gmail.com>
References: <CAEkHFKSxYO7Ryv_UNNGSe88zosg0_Q_dop6hXN0oCoYK28EZtA@mail.gmail.com>

On Fri, Jan 2, 2026, 08:55 Babak Ghadiri <bbkghadiri6@gmail.com> wrote:

> Hello,
> I hope you are doing well.
>
> In PostgreSQL 16, startup appears to initialize databases sequentially and
> primarily uses a single CPU core. In clusters with a very large number of
> databases (around 5,000 in our case), this results in noticeably long
> startup times after restarts or crash recovery.
>

You probably want to consider setting:
recovery_init_sync_method=syncfs

I'm 99% certain that that will solve your problem.

https://www.postgresql.org/docs/current/runtime-config-error-handling.html

https://www.postgresql.org/message-id/flat/11bc2bb7-ecb5-3ad0-b39f-df632734cd81@discourse.org


PS It took me way to long to find that setting. I think we should move it
from the error handling docs page to the page with all of the other
recovery settings.
https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY

>


reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: postgres@jeltef.nl, bbkghadiri6@gmail.com, pgsql-hackers@lists.postgresql.org
  Subject: Re: Parallelizing startup with many databases
  In-Reply-To: <CAGECzQSu1BeW3EvRwUWGYL+EBHzDhLCRW3LKcqTU-Y4_44myZA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox