Alvaro Herrera wrote:
Greg Smith wrote:
One tiny change I'd suggest here: if you look at the code for checkpoint buffer writing there are traces for two points in the process:

 CheckPointBuffers(int flags)
 {
+       TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START(flags);
        CheckpointStats.ckpt_write_t = GetCurrentTimestamp();
        BufferSync(flags);
        CheckpointStats.ckpt_sync_t = GetCurrentTimestamp();
        smgrsync();
        CheckpointStats.ckpt_sync_end_t = GetCurrentTimestamp();
+       TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE();
 }

Note how the existing code also tracks how long the sync phase took compared to the write one, and reports both numbers in the checkpoint logs. It would be nice to add another probe at that same point (just after ckpt_sync_t is set) so that dtrace users could instrument all these possibilities as well: just buffer write time/resources, just sync ones, or both.

Sounds like the thing to do would be to pass CheckpointStats into the
DONE probe.


I like this approach as it avoids the need to have too many probes. I will make this change and get it in with the remaining probes for the next commit fest.

--
Robert Lor           Sun Microsystems
Austin, USA          http://sun.com/postgresql


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to