Re: EXPLAIN BUFFERS - Mailing list pgsql-hackers

From Itagaki Takahiro
Subject Re: EXPLAIN BUFFERS
Date
Msg-id 20091207152840.9537.52131E4D@oss.ntt.co.jp
Whole thread Raw
In response to Re: EXPLAIN BUFFERS  (Euler Taveira de Oliveira <euler@timbira.com>)
Responses Re: EXPLAIN BUFFERS  (Robert Haas <robertmhaas@gmail.com>)
Re: EXPLAIN BUFFERS  (Euler Taveira de Oliveira <euler@timbira.com>)
List pgsql-hackers
Euler Taveira de Oliveira <euler@timbira.com> wrote:

> I'm looking at your patch now... It is almost there but has some issues.
> 
> (i) documentation: you have more than three counters and they could be
> mentioned in docs too.

I'll add documentation for all variables.

> (ii) format: why does text output format have less counters than the other ones?

That's because lines will be too long for text format. I think the
three values in it are the most important and useful ones.

> (iii) string: i don't like the string in text format
> (1) it is not concise (only the first item has the word 'Blocks'),
> (2) what block is it about? Shared, Local, or Temp?

The format was suggested here and no objections then.
http://archives.postgresql.org/pgsql-hackers/2009-10/msg00268.php
I think the current output is enough and useful in normal use.
We can use XML or JSON format for more details.

I think   Blocks Hit: 1641  Read: 0  Temp Read: 1443
means   Blocks (Hit: 1641  Read: 0  Temp Read: 1443)
i.e., Blocks of hit, blocks of reads, and Blocks of temp reads.

> (3) why don't you include the other ones?, and
> (4) why don't you include the written counters?
> (iv) text format: i don't have a good suggestion but here are some ideas. The
> former is too long and the latter is too verbose.

Their reasons are the same as (ii).

> (v) accumulative: i don't remember if we discussed it but is there a reason
> the number of buffers isn't accumulative? We already have cost and time that
> are both accumulative. I saw BufferUsageAccumDiff() function but didn't try to
> figure out why it isn't accumulating or passing the counters to parent nodes.

It's reasonable. I'll change so if no objections.

> (vi) comment: the 'at start' is superfluous. Please, remove it.

Ooops, I'll remove them.

> (vii) all nodes: I'm thinking if we need this information in all nodes (even
> in those nodes that don't read or write). It would be less verbose but it
> could complicate some parser's life. Of course, if we suppress this
> information, we need to include it on the top node even if we don't read or
> write in it.

I cannot understand what you mean -- should I suppress the lines when they
have all-zero values?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center




pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: pgbench: new feature allowing to launch shell commands
Next
From: Tom Lane
Date:
Subject: Re: bug: json format and auto_explain