Re: Review: DTrace probes (merged version) ver_03 - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: Review: DTrace probes (merged version) ver_03
Date
Msg-id 48898490.4050603@sun.com
Whole thread Raw
In response to Re: Review: DTrace probes (merged version) ver_03  (Theo Schlossnagle <jesus@omniti.com>)
Responses Re: Review: DTrace probes (merged version) ver_03
List pgsql-hackers
Theo Schlossnagle napsal(a):
> 
> On Jul 24, 2008, at 11:11 AM, Zdenek Kotala wrote:
> 
>> I performed review and I prepared own patch which contains only probes 
>> without any issue. I suggest commit this patch because the rest of 
>> patch is independent and it can be committed next commit fest after 
>> rework.
>>
>> I found following issues:
>>
>> 1) SLRU probes.
>>
>> I think it is good to have probes there but they needs polish. See my 
>> comments
>> http://reviewdemo.postgresql.org/r/25/
> 
> The slru's are quite useful and general enough to use easily.  I used 
> them to verify the metered checkpointing stuff:
> 
> http://lethargy.org/~jesus/archives/112-Probing-for-Success.html

I agree that SLRU probes are useful but I'm worry about implementation. I think 
that these probes need more work before commit. Currently there are several bugs 
in placement and arguments (from my point of view).

>> 3) Executor probes
>>
>> I would like to see any use case for them/
> 
> I added them with two thoughts (and knowing that they cost nothing).
> (1) you can trace them to assist in debugging an explain plan and to 
> better understand the flow of the execution engine.  This is not a 
> compelling reason, but a reason none-the-less.
> (2) you can trace and existing long-running query for which you do not 
> have the original plan (may have changed) and make an educated guess at 
> the plan chosen at time of execution.

I'm not executor expert and (1) is useful for me :-). What I'm thinking about is 
if we can mine more information from executor like number of tuples processed by 
node number and so on. I think that it needs discussion.

>> 8) mark dirty and BM_HINT... flag
>>
>> I remove these because I don't see any use case for it. It would be 
>> nice provide some dtrace script or describe basic ideas.
> 
> 
> Perhaps I misunderstood what mark dirty does, but here was my thinking:
> 
> Because of the background writer, it is difficult to understand which 
> postgres process (and thus query) induced disk writes.  Marking a page 
> as dirty is a good indication that a query will be causing I/O and you 
> can measure calls to mark dirty per query as a telling metric.
> 
> Perhaps I misunderstood, but I have a very serious problem that I can't 
> reliably track write I/O to postgresql process ID as the bgwriter and 
> the kernel are flushing those dirty blocks to disk while the process 
> isn't running.  In my (albeit naive) tests, the mark dirty gave me quite 
> expected results for correlating query execution to disk I/O to be induced.
> 

If I understand correctly you need to analyze number of writes per 
query/session. It seems to me, that to use mark dirty is good way, but it 
probably needs more probes. (Robert L. any idea?)

However what I suggested is commit probes without issue now and the rest will be 
processed on the next commit fest after rework/discussion.
    Zdenek

-- 
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql



pgsql-hackers by date:

Previous
From: Teodor Sigaev
Date:
Subject: Re: [PATCHES] GIN improvements
Next
From: daveg
Date:
Subject: Re: Additional psql requirements