pgsql: Extend the BufFile interface.

From: Amit Kapila <akapila(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Extend the BufFile interface.
Date: 2020-08-26 02:59:57
Message-ID: E1kAlfJ-00086o-Nx@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Extend the BufFile interface.

Allow BufFile to support temporary files that can be used by the single
backend when the corresponding files need to be survived across the
transaction and need to be opened and closed multiple times. Such files
need to be created as a member of a SharedFileSet.

Additionally, this commit implements the interface for BufFileTruncate to
allow files to be truncated up to a particular offset and extends the
BufFileSeek API to support the SEEK_END case. This also adds an option to
provide a mode while opening the shared BufFiles instead of always opening
in read-only mode.

These enhancements in BufFile interface are required for the upcoming
patch to allow the replication apply worker, to handle streamed
in-progress transactions.

Author: Dilip Kumar, Amit Kapila
Reviewed-by: Amit Kapila
Tested-by: Neha Sharma
Discussion: https://postgr.es/m/688b0b7f-2f6c-d827-c27b-216a8e3ea700@2ndquadrant.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/808e13b282efa7e7ac7b78e886aca5684f4bccd3

Modified Files
--------------
doc/src/sgml/monitoring.sgml | 4 +
src/backend/postmaster/pgstat.c | 3 +
src/backend/storage/file/buffile.c | 129 +++++++++++++++++++++++++++---
src/backend/storage/file/fd.c | 9 +--
src/backend/storage/file/sharedfileset.c | 105 ++++++++++++++++++++++--
src/backend/utils/sort/logtape.c | 4 +-
src/backend/utils/sort/sharedtuplestore.c | 2 +-
src/include/pgstat.h | 1 +
src/include/storage/buffile.h | 4 +-
src/include/storage/fd.h | 2 +-
src/include/storage/sharedfileset.h | 4 +-
11 files changed, 239 insertions(+), 28 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Kapila 2020-08-26 04:22:30 pgsql: Add additional information in the vacuum error context.
Previous Message Fujii Masao 2020-08-26 01:53:15 pgsql: Prevent non-superusers from reading pg_backend_memory_contexts,