I am not sure whether PostgreSQL depends on system call `fsyncdata` to
 sync data to disk. If yes, then I don't think it's safe to use NFS.
When `fsyncdata` returns success, it doesn't mean the data has
really been synced to disk. But if PostgreSQL crashes right after
it returns success to clients. Eventually it breaks the D (Durability) of
ACID.

Benjamin

On Mon, Jul 14, 2025 at 7:31 PM Tom Lane <t...@sss.pgh.pa.us> wrote:

> "Peter J. Holzer" <hjp-pg...@hjp.at> writes:
> > On 2025-07-14 10:07:20 -0400, Tom Lane wrote:
> >> That is primarily for safety reasons: if for some reason the
> >> filesystem gets dismounted, or hasn't come on-line yet during
> >> a reboot, you do not want Postgres to be able to write on the
> >> underlying mount-point directory.
>
> > Be careful: There are two different directorys involved in a mount
> > point. The one in the parent filesystem and the one in the mounted file
> > system.
>
> True, and the safety requirement really is only that the parent
> filesystem's mount-point directory not be writable by us.
> But normal practice is that both directories are root-owned,
> or at least owned by highly privileged users.
>
> (I have a vague idea that there are system-level security hazards,
> not specific to Postgres, if mount-point directories are publicly
> writable.  Don't feel like researching that though.)
>
>                         regards, tom lane
>
>
>

Reply via email to