diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index e387c01776..e8e15033f8 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -970,6 +970,11 @@ smgrpostcheckpoint(void) } } + +/* TEMPORARY INSTRUMENTATION */ +static int remember_req_cnt = 0; + + /* * ProcessFsyncRequests() -- Process queued fsync requests. */ @@ -991,6 +996,18 @@ ProcessFsyncRequests(void) uint64 longest = 0; uint64 total_elapsed = 0; + + /* + * TEMPORARY INSTRUMENTATION + */ + instr_time mdsync_start, + mdsync_end, + mdsync_diff; + remember_req_cnt = 0; + INSTR_TIME_SET_CURRENT(mdsync_start); + + + /* * This is only called during checkpoints, and checkpoints should only * occur in processes that have created a pendingOps. @@ -1181,6 +1198,19 @@ ProcessFsyncRequests(void) /* Flag successful completion of ProcessFsyncRequests */ sync_in_progress = false; + + + + /* + * TEMPORARY INSTRUMENTATION + */ + INSTR_TIME_SET_CURRENT(mdsync_end); + mdsync_diff = mdsync_end; + INSTR_TIME_SUBTRACT(mdsync_diff, mdsync_start); + elapsed = INSTR_TIME_GET_MICROSEC(mdsync_diff); + if (log_checkpoints) + elog(LOG, "debug ProcessFsyncRequests stats: remembered=%d fsynced=%d time=%.3f msec", + remember_req_cnt, processed, (double) elapsed / 1000); } /* @@ -1207,6 +1237,9 @@ ProcessFsyncRequests(void) void RememberFsyncRequest(RelFileNode rnode, ForkNumber forknum, SegmentNumber segno) { + /* TEMPORARY INSTRUMENTATION */ + remember_req_cnt++; + Assert(pendingOps); if (segno == FORGET_RELATION_FSYNC)