From e30ddf55a62f02a2834eeeb1057c022cee0b2060 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 22 Apr 2009 19:51:12 +0000 Subject: [PATCH] After archive recovery, mark the last WAL segment from the parent timeline ready for archival. It was marked at the next checkpoint anyway, but waiting for the next checkpoint is an unnecessary delay. Fujii Masao --- src/backend/access/transam/xlog.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 2fc935a1fb..820b4398fe 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -4850,10 +4850,22 @@ exitArchiveRecovery(TimeLineID endTLI, uint32 endLogId, uint32 endLogSeg) * If we are establishing a new timeline, we have to copy data from * the last WAL segment of the old timeline to create a starting WAL * segment for the new timeline. + * + * Notify the archiver that the last WAL segment of the old timeline + * is ready to copy to archival storage. Otherwise, it is not archived + * for a while. */ if (endTLI != ThisTimeLineID) + { XLogFileCopy(endLogId, endLogSeg, endTLI, endLogId, endLogSeg); + + if (XLogArchivingActive()) + { + XLogFileName(xlogpath, endTLI, endLogId, endLogSeg); + XLogArchiveNotify(xlogpath); + } + } } /* -- 2.39.5