From 5fb6f6e9f3e45bd573a087ab70be039aa1b9bbe0 Mon Sep 17 00:00:00 2001
From: reshke kirill <reshke@double.cloud>
Date: Tue, 21 Jun 2022 10:21:46 +0300
Subject: [PATCH v1] Use fadvise to prefect wal in xlogrecovery

---
 src/backend/access/transam/xlogrecovery.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c
index 6eba626420..19c0caa058 100644
--- a/src/backend/access/transam/xlogrecovery.c
+++ b/src/backend/access/transam/xlogrecovery.c
@@ -3237,6 +3237,13 @@ retry:
 	Assert(targetPageOff == readOff);
 	Assert(reqLen <= readLen);
 
+	/* 
+	*  Request next wal block, to avoid page miss on next read iteration.
+	*/
+#if defined(USE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED)
+	posix_fadvise(readFile, readOff + XLOG_BLCKSZ, XLOG_BLCKSZ, POSIX_FADV_WILLNEED);
+#endif
+
 	xlogreader->seg.ws_tli = curFileTLI;
 
 	/*
-- 
2.25.1

