Thread: pgsql: Optimize fileset usage in apply worker.

pgsql: Optimize fileset usage in apply worker.

From
Amit Kapila
Date:
Optimize fileset usage in apply worker.

Use one fileset for the entire worker lifetime instead of using
separate filesets for each streaming transaction. Now, the
changes/subxacts files for every streaming transaction will be
created under the same fileset and the files will be deleted
after the transaction is completed.

This patch extends the BufFileOpenFileSet and BufFileDeleteFileSet
APIs to allow users to specify whether to give an error on missing
files.

Author: Dilip Kumar, based on suggestion by Thomas Munro
Reviewed-by: Hou Zhijie, Masahiko Sawada, Amit Kapila
Discussion: https://postgr.es/m/E1mCC6U-0004Ik-Fs@gemulon.postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/31c389d8de915b705ee06c7a6e9246e20f36b9dc

Modified Files
--------------
src/backend/replication/logical/launcher.c |   6 +-
src/backend/replication/logical/worker.c   | 257 ++++++-----------------------
src/backend/storage/file/buffile.c         |  22 ++-
src/backend/utils/sort/logtape.c           |   2 +-
src/backend/utils/sort/sharedtuplestore.c  |   3 +-
src/include/replication/worker_internal.h  |  10 +-
src/include/storage/buffile.h              |   5 +-
7 files changed, 86 insertions(+), 219 deletions(-)