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


--
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