diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 2aba2dfe91..1f968f0bf7 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -1003,6 +1003,11 @@ mdimmedsync(SMgrRelation reln, ForkNumber forknum) } } + +/* TEMPORARY INSTRUMENTATION */ +static int remember_req_cnt = 0; + + /* * mdsync() -- Sync previous writes to stable storage. */ @@ -1024,6 +1029,17 @@ mdsync(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 pendingOpsTable. @@ -1295,6 +1311,18 @@ mdsync(void) /* Flag successful completion of mdsync */ mdsync_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 mdsync stats: remembered=%d fsynced=%d time=%.3f msec", + remember_req_cnt, processed, (double) elapsed / 1000); } /* @@ -1482,6 +1510,9 @@ register_unlink(RelFileNodeBackend rnode) void RememberFsyncRequest(RelFileNode rnode, ForkNumber forknum, BlockNumber segno) { + /* TEMPORARY INSTRUMENTATION */ + remember_req_cnt++; + Assert(pendingOpsTable); if (segno == FORGET_RELATION_FSYNC)