pg.ddx.io pgsql-committers@postgresql.org mailing list archivehelp / color / mirror / Atom feed
[PATCH v1 1/1] Adjust documentation for syncfs(). 2+ messages / 2 participants [nested] [flat]
* [PATCH v1 1/1] Adjust documentation for syncfs(). @ 2024-03-26 16:26 Nathan Bossart <nathan@postgresql.org> 0 siblings, 0 replies; 2+ messages in thread From: Nathan Bossart @ 2024-03-26 16:26 UTC (permalink / raw) Commit 8c16ad3b43 created a new appendix for syncfs(), which is excessive for the small amount of content it contains. This commit moves the description of the caveats to be aware of when using syncfs() back to the documentation for recovery_init_sync_method. The documentation for the other utilities with syncfs() support now directs readers to recovery_init_sync_method for information about these caveats. Reported-by: Peter Eisentraut Suggested-by: Robert Haas Discussion: https://postgr.es/m/42804669-7063-1320-ed37-3226d5f1067d%40eisentraut.org Discussion: https://postgr.es/m/CA%2BTgmobUiqKr%2BZMCLc5Qap-sXBnjfGUU%2BZBmzYEjUuWyjsGr1g%40mail.gmail.com --- doc/src/sgml/config.sgml | 12 ++++++--- doc/src/sgml/filelist.sgml | 1 - doc/src/sgml/postgres.sgml | 1 - doc/src/sgml/ref/initdb.sgml | 4 +-- doc/src/sgml/ref/pg_basebackup.sgml | 4 +-- doc/src/sgml/ref/pg_checksums.sgml | 4 +-- doc/src/sgml/ref/pg_combinebackup.sgml | 4 +-- doc/src/sgml/ref/pg_dump.sgml | 5 ++-- doc/src/sgml/ref/pg_rewind.sgml | 4 +-- doc/src/sgml/ref/pgupgrade.sgml | 4 +-- doc/src/sgml/syncfs.sgml | 36 -------------------------- 11 files changed, 24 insertions(+), 55 deletions(-) delete mode 100644 doc/src/sgml/syncfs.sgml diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 65a6e6c408..5468637e2e 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -10870,9 +10870,15 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' On Linux, <literal>syncfs</literal> may be used instead, to ask the operating system to synchronize the file systems that contain the data directory, the WAL files and each tablespace (but not any other - file systems that may be reachable through symbolic links). See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + file systems that may be reachable through symbolic links). This may + be a lot faster than the <literal>fsync</literal> setting, because it + doesn't need to open each file one by one. On the other hand, it may + be slower if a file system is shared by other applications that + modify a lot of files, since those files will also be written to disk. + Furthermore, on versions of Linux before 5.8, I/O errors encountered + while writing data to disk may not be reported to + <productname>PostgreSQL</productname>, and relevant error messages may + appear only in kernel logs. </para> <para> This parameter can only be set in the diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index e0dca81cb2..c92a16c7ac 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -182,7 +182,6 @@ <!ENTITY acronyms SYSTEM "acronyms.sgml"> <!ENTITY glossary SYSTEM "glossary.sgml"> <!ENTITY color SYSTEM "color.sgml"> -<!ENTITY syncfs SYSTEM "syncfs.sgml"> <!ENTITY features-supported SYSTEM "features-supported.sgml"> <!ENTITY features-unsupported SYSTEM "features-unsupported.sgml"> diff --git a/doc/src/sgml/postgres.sgml b/doc/src/sgml/postgres.sgml index 2c107199d3..381af69be2 100644 --- a/doc/src/sgml/postgres.sgml +++ b/doc/src/sgml/postgres.sgml @@ -289,7 +289,6 @@ break is not needed in a wider output rendering. &acronyms; &glossary; &color; - &syncfs; &obsolete; </part> diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml index 377c3cb20a..dc9011b40e 100644 --- a/doc/src/sgml/ref/initdb.sgml +++ b/doc/src/sgml/ref/initdb.sgml @@ -394,8 +394,8 @@ PostgreSQL documentation On Linux, <literal>syncfs</literal> may be used instead to ask the operating system to synchronize the whole file systems that contain the data directory, the WAL files, and each tablespace. See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + <xref linkend="guc-recovery-init-sync-method"/> for information about + the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml index 208530f393..82d0c8e008 100644 --- a/doc/src/sgml/ref/pg_basebackup.sgml +++ b/doc/src/sgml/ref/pg_basebackup.sgml @@ -642,8 +642,8 @@ PostgreSQL documentation backup directory. When the plain format is used, <command>pg_basebackup</command> will also synchronize the file systems that contain the WAL files and each tablespace. See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + <xref linkend="guc-recovery-init-sync-method"/> for information about + the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/ref/pg_checksums.sgml b/doc/src/sgml/ref/pg_checksums.sgml index db5b29505c..95043aa329 100644 --- a/doc/src/sgml/ref/pg_checksums.sgml +++ b/doc/src/sgml/ref/pg_checksums.sgml @@ -152,8 +152,8 @@ PostgreSQL documentation On Linux, <literal>syncfs</literal> may be used instead to ask the operating system to synchronize the whole file systems that contain the data directory, the WAL files, and each tablespace. See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + <xref linkend="guc-recovery-init-sync-method"/> for information about + the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/ref/pg_combinebackup.sgml b/doc/src/sgml/ref/pg_combinebackup.sgml index 8a0a600c2b..6f90dba281 100644 --- a/doc/src/sgml/ref/pg_combinebackup.sgml +++ b/doc/src/sgml/ref/pg_combinebackup.sgml @@ -176,8 +176,8 @@ PostgreSQL documentation backup directory. When the plain format is used, <command>pg_combinebackup</command> will also synchronize the file systems that contain the WAL files and each tablespace. See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + <xref linkend="guc-recovery-init-sync-method"/> for information about + the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index 8edf03a03d..b99793e414 100644 --- a/doc/src/sgml/ref/pg_dump.sgml +++ b/doc/src/sgml/ref/pg_dump.sgml @@ -1319,8 +1319,9 @@ PostgreSQL documentation <para> On Linux, <literal>syncfs</literal> may be used instead to ask the operating system to synchronize the whole file system that contains the - archive directory. See <xref linkend="syncfs"/> for more information - about using <function>syncfs()</function>. + archive directory. See <xref linkend="guc-recovery-init-sync-method"/> + for information about the caveats to be aware of when using + <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used or diff --git a/doc/src/sgml/ref/pg_rewind.sgml b/doc/src/sgml/ref/pg_rewind.sgml index 841bd49fc7..dc039d8756 100644 --- a/doc/src/sgml/ref/pg_rewind.sgml +++ b/doc/src/sgml/ref/pg_rewind.sgml @@ -297,8 +297,8 @@ PostgreSQL documentation On Linux, <literal>syncfs</literal> may be used instead to ask the operating system to synchronize the whole file systems that contain the data directory, the WAL files, and each tablespace. See - <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + <xref linkend="guc-recovery-init-sync-method"/> for information about + the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml index 8de52bf752..80a50377b1 100644 --- a/doc/src/sgml/ref/pgupgrade.sgml +++ b/doc/src/sgml/ref/pgupgrade.sgml @@ -204,8 +204,8 @@ PostgreSQL documentation On Linux, <literal>syncfs</literal> may be used instead to ask the operating system to synchronize the whole file systems that contain the upgraded cluster's data directory, its WAL files, and each tablespace. - See <xref linkend="syncfs"/> for more information about using - <function>syncfs()</function>. + See <xref linkend="guc-recovery-init-sync-method"/> for information + about the caveats to be aware of when using <literal>syncfs</literal>. </para> <para> This option has no effect when <option>--no-sync</option> is used. diff --git a/doc/src/sgml/syncfs.sgml b/doc/src/sgml/syncfs.sgml deleted file mode 100644 index 00457d2457..0000000000 --- a/doc/src/sgml/syncfs.sgml +++ /dev/null @@ -1,36 +0,0 @@ -<!-- doc/src/sgml/syncfs.sgml --> - -<appendix id="syncfs"> - <title><function>syncfs()</function> Caveats</title> - - <indexterm zone="syncfs"> - <primary>syncfs</primary> - </indexterm> - - <para> - On Linux <function>syncfs()</function> may be specified for some - configuration parameters (e.g., - <xref linkend="guc-recovery-init-sync-method"/>), server applications (e.g., - <application>pg_upgrade</application>), and client applications (e.g., - <application>pg_basebackup</application>) that involve synchronizing many - files to disk. <function>syncfs()</function> is advantageous in many cases, - but there are some trade-offs to keep in mind. - </para> - - <para> - Since <function>syncfs()</function> instructs the operating system to - synchronize a whole file system, it typically requires many fewer system - calls than using <function>fsync()</function> to synchronize each file one by - one. Therefore, using <function>syncfs()</function> may be a lot faster than - using <function>fsync()</function>. However, it may be slower if a file - system is shared by other applications that modify a lot of files, since - those files will also be written to disk. - </para> - - <para> - Furthermore, on versions of Linux before 5.8, I/O errors encountered while - writing data to disk may not be reported to the calling program, and relevant - error messages may appear only in kernel logs. - </para> - -</appendix> -- 2.25.1 --SUOF0GtieIMvvwua-- ^ permalink raw reply [nested|flat] 2+ messages in thread
* pgsql: Use UnlockReleaseBuffer() in more places @ 2026-03-27 19:58 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 2+ messages in thread From: Andres Freund @ 2026-03-27 19:58 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Use UnlockReleaseBuffer() in more places An upcoming commit will make UnlockReleaseBuffer() considerably faster and more scalable than doing LockBuffer(BUFFER_LOCK_UNLOCK); ReleaseBuffer();. But it's a small performance benefit even as-is. Most of the callsites changed in this patch are not performance sensitive, however some, like the nbtree ones, are in critical paths. This patch changes all the easily convertible places over to UnlockReleaseBuffer() mainly because I needed to check all of them anyway, and reducing cases where the operations are done separately makes the checking easier. Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://postgr.es/m/5ubipyssiju5twkb7zgqwdr7q2vhpkpmuelxfpanetlk6ofnop@hvxb4g2amb2d Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/8df3c48e466cfe8a1f9ccd3fb367244d4a47e94a Modified Files -------------- contrib/amcheck/verify_gin.c | 6 ++---- contrib/pageinspect/rawpage.c | 3 +-- src/backend/access/heap/heapam.c | 6 ++---- src/backend/access/heap/hio.c | 7 ++++--- src/backend/access/nbtree/nbtpage.c | 35 +++++++++++++++++++++++++------ src/backend/storage/buffer/bufmgr.c | 3 +-- src/backend/storage/freespace/freespace.c | 3 +-- src/test/modules/test_aio/test_aio.c | 7 ++----- 8 files changed, 42 insertions(+), 28 deletions(-) ^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2026-03-27 19:58 UTC | newest] Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2024-03-26 16:26 [PATCH v1 1/1] Adjust documentation for syncfs(). Nathan Bossart <nathan@postgresql.org> 2026-03-27 19:58 pgsql: Use UnlockReleaseBuffer() in more places Andres Freund <andres@anarazel.de>
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox