pgsql: initdb: Add --no-sync-data-files. - Mailing list pgsql-committers

From Nathan Bossart
Subject pgsql: initdb: Add --no-sync-data-files.
Date
Msg-id E1txBQv-000ywB-1M@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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(-)


pgsql-committers by date:

Previous
From: Jeff Davis
Date:
Subject: pgsql: Stats: use schemaname/relname instead of regclass.
Next
From: Michael Paquier
Date:
Subject: pgsql: pg_stat_statements: Add more tests with temp tables and namespac