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