public inbox for [email protected]  
help / color / mirror / Atom feed
From: Nathan Bossart <[email protected]>
To: [email protected]
Subject: pgsql: initdb: Add --no-sync-data-files.
Date: Tue, 25 Mar 2025 21:03:37 +0000
Message-ID: <[email protected]> (raw)

initdb: Add --no-sync-data-files.

This new option instructs initdb to skip synchronizing any files
in database directories, the database directories themselves, and
the tablespace directories, i.e., everything in the base/
subdirectory and any other tablespace directories.  Other files,
such as those in pg_wal/ and pg_xact/, will still be synchronized
unless --no-sync is also specified.  --no-sync-data-files is
primarily intended for internal use by tools that separately ensure
the skipped files are synchronized to disk.  A follow-up commit
will use this to help optimize pg_upgrade's file transfer step.

The --sync-method=fsync implementation of this option makes use of
a new exclude_dir parameter for walkdir().  When not NULL,
exclude_dir specifies a directory to skip processing.  The
--sync-method=syncfs implementation of this option just skips
synchronizing the non-default tablespace directories.  This means
that initdb will still synchronize some or all of the database
files, but there's not much we can do about that.

Discussion: https://postgr.es/m/Zyvop-LxLXBLrZil%40nathan

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/cf131fa942855acd42e8283185837566c7e8c15e

Modified Files
--------------
doc/src/sgml/ref/initdb.sgml                | 27 +++++++++
src/bin/initdb/initdb.c                     | 10 +++-
src/bin/initdb/t/001_initdb.pl              |  1 +
src/bin/pg_basebackup/pg_basebackup.c       |  2 +-
src/bin/pg_checksums/pg_checksums.c         |  2 +-
src/bin/pg_combinebackup/pg_combinebackup.c |  2 +-
src/bin/pg_rewind/file_ops.c                |  2 +-
src/common/file_utils.c                     | 85 +++++++++++++++++++----------
src/include/common/file_utils.h             |  2 +-
9 files changed, 96 insertions(+), 37 deletions(-)



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: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: pgsql: initdb: Add --no-sync-data-files.
  In-Reply-To: <[email protected]>

* 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