diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index 4841095..54c4d13 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -781,6 +781,15 @@ sendFile(char *readfilename, char *tarfilename, struct stat * statbuf) pq_putmessage('d', buf, pad); } + /* + * If we have posix_fadvise(), send a note to the kernel that we are not + * going to need this data anytime soon, so that it can be discarded + * from the filesystem cache. + */ +#if defined(USE_POSIX_FADVISE) && defined(POSIX_FADV_DONTNEED) + (void) posix_fadvise(fileno(fp), 0, 0, POSIX_FADV_DONTNEED); +#endif + FreeFile(fp); }