Optimize fileset usage in apply worker.
commit31c389d8de915b705ee06c7a6e9246e20f36b9dc
authorAmit Kapila <akapila@postgresql.org>
Thu, 2 Sep 2021 02:43:46 +0000 (2 08:13 +0530)
committerAmit Kapila <akapila@postgresql.org>
Thu, 2 Sep 2021 02:43:46 +0000 (2 08:13 +0530)
treed90d353d2b81389163684cacadc780bf90dbeeec
parent163074ea84efec6ffa4813db43cc956ac5d12565
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
src/backend/replication/logical/launcher.c
src/backend/replication/logical/worker.c
src/backend/storage/file/buffile.c
src/backend/utils/sort/logtape.c
src/backend/utils/sort/sharedtuplestore.c
src/include/replication/worker_internal.h
src/include/storage/buffile.h