Re: fsync data directory after DB crash

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Pandora <yeyukui(at)qq(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: fsync data directory after DB crash
Date: 2023-07-19 00:41:14
Message-ID: ZLcxKpcAU5mK7VG7@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Jul 18, 2023 at 04:50:25PM +0800, Pandora wrote:
> I found that starting from version 9.5, PostgreSQL will do fsync on
> the entire data directory after DB crash. Here's a question: if I
> have FPW = on, why is this step still necessary?

Yes, see around the call of SyncDataDirectory() in xlog.c:
* - There might be data which we had written, intending to fsync it, but
* which we had not actually fsync'd yet. Therefore, a power failure in
* the near future might cause earlier unflushed writes to be lost, even
* though more recent data written to disk from here on would be
* persisted. To avoid that, fsync the entire data directory.
--
Michael

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Munro 2023-07-19 01:37:01 Re: fsync data directory after DB crash
Previous Message Rob Sargent 2023-07-18 19:41:40 Re: Effects of dropping a large table