From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
Cc: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, David Steele <david(at)pgmasters(dot)net>, Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>, Paul Guo <guopa(at)vmware(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Michael Brown <michael(dot)brown(at)discourse(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: should frontend tools use syncfs() ? |
Date: | 2021-09-30 03:49:36 |
Message-ID: | YVUz0Ay9KshniWBe@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Sep 29, 2021 at 07:43:41PM -0500, Justin Pryzby wrote:
> Forking this thread in which Thomas implemented syncfs for the startup process
> (61752afb2).
> https://www.postgresql.org/message-id/flat/CA%2BhUKG%2BSG9jSW3ekwib0cSdC0yD-jReJ21X4bZAmqxoWTLTc2A%40mail.gmail.com
>
> Is there any reason that initdb/pg_basebackup/pg_checksums/pg_rewind shouldn't
> use syncfs() ?
That makes sense.
> do_syncfs() is in src/backend/ so would need to be duplicated^Wimplemented in
> common.
The fd handling in the backend makes things tricky if trying to plug
in a common interface, so I'd rather do that as this is frontend-only
code.
> They can't use the GUC, so need to add an cmdline option or look at an
> environment variable.
fsync_pgdata() is going to manipulate many inodes anyway, because
that's a code path designed to do so. If we know that syncfs() is
just going to be better, I'd rather just call it by default if
available and not add new switches to all the frontend tools in need
of flushing the data folder, switches that are not documented in your
patch.
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | Osumi | 2021-09-30 04:06:31 | RE: Failed transaction statistics to measure the logical replication progress |
Previous Message | Shinya11.Kato | 2021-09-30 03:18:29 | RE: (LOCK TABLE options) “ONLY” and “NOWAIT” are not yet implemented |