Attached patch adds a simple call to posix_fadvise with POSIX_FADV_DONTNEED on all the files being read when doing a base backup, to help the kernel not to trash the filesystem cache.
Seems like a simple enough fix - in fact, I don't remember why I took it out of the original patch :O Any reason not to put this in? Is it even safe enough to put into 9.1 (probably not, but maybe?) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
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); }
-- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers