XLogFlush(recptr);
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "checkpoint WAL record flushed at %s", current_time_as_str());
+
/*
* We mustn't write any new WAL after a shutdown checkpoint, or it will be
* overwritten at next startup. No-one should even try, this just allows
UpdateControlFile();
LWLockRelease(ControlFileLock);
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "pg_control updated at %s", current_time_as_str());
+
/* Update shared-memory copy of checkpoint XID/epoch */
SpinLockAcquire(&XLogCtl->info_lck);
XLogCtl->ckptXidEpoch = checkPoint.nextXidEpoch;
*/
smgrpostckpt();
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "smgrpostckpt() done at %s", current_time_as_str());
+
/*
* Delete old log files (those no longer needed even for previous
* checkpoint or the standbys in XLOG streaming).
KeepLogSeg(recptr, &_logSegNo);
_logSegNo--;
RemoveOldXlogFiles(_logSegNo, PriorRedoPtr, recptr);
+
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "RemoveOldXlogFiles() done at %s", current_time_as_str());
}
/*
* StartupSUBTRANS hasn't been called yet.
*/
if (!RecoveryInProgress())
+ {
TruncateSUBTRANS(GetOldestXmin(NULL, false));
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "TruncateSUBTRANS() done at %s", current_time_as_str());
+ }
/* Real work is done, but log and update stats before releasing lock. */
LogCheckpointEnd(false);
if (entry->cycle_ctr == mdckpt_cycle_ctr)
break;
+ if ((list_length(pendingUnlinks) % 1024) == 0)
+ elog(IsPostmasterEnvironment ? LOG : NOTICE,
+ "in mdpostckpt, %d unlinks remain to do at %s",
+ list_length(pendingUnlinks), current_time_as_str());
+
/* Unlink the file */
path = relpathperm(entry->rnode, MAIN_FORKNUM);
if (unlink(path) < 0)