Re: Accounting of zero-filled buffers in EXPLAIN (BUFFERS) - Mailing list pgsql-hackers

From Haribabu Kommi
Subject Re: Accounting of zero-filled buffers in EXPLAIN (BUFFERS)
Date
Msg-id CAJrrPGfd1moDHR_D9ck_bxmKqinT1g3V9UhOX4rnmS-hB00QSA@mail.gmail.com
Whole thread Raw
In response to Re: Accounting of zero-filled buffers in EXPLAIN (BUFFERS)  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: Accounting of zero-filled buffers in EXPLAIN (BUFFERS)  (Thomas Munro <thomas.munro@enterprisedb.com>)
List pgsql-hackers

On Mon, Apr 30, 2018 at 1:38 PM Thomas Munro <thomas.munro@enterprisedb.com> wrote:
On Mon, Apr 30, 2018 at 3:13 PM, Andres Freund <andres@anarazel.de> wrote:
> On 2018-04-30 14:59:31 +1200, Thomas Munro wrote:
>> In EXPLAIN (BUFFERS), there are two kinds of cache misses that show up
>> as "reads" when in fact they are not reads at all:
>>
>> 1.  Relation extension, which in fact writes a zero-filled block.
>> 2.  The RBM_ZERO_* modes, which provoke neither read nor write.
>
> Just for understanding: 2) can never happen for buffers showing up in
> EXPLAIN, right?
>
> I'm not saying you shouldn't fix the accounting...

Maybe the hash AM can reach that in _hash_getinitbuf() while adding
overflow pages to bucket chains?  Admittedly case 2 is obscure and
rare if not unreachable and probably no one would care too much about
that in practice (whereas case 1 can be seen by simply inserting stuff
into a new empty table).  Other patches I'm working on for later
proposal do it more often (think accessing known-empty pages in a kind
of preallocated extent), and it occurred to me that it's clearly a bug
on principle, hence this patch.

I checked the patch and I agree with the change 1). And regarding change 2)
whether it is  zeroing the contents of the page or not, it does read?
because if it exists in the buffer pool, we are counting them as hits irrespective
of the mode? Am I missing something?

Regards,
Haribabu Kommi
Fujitsu Australia

pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: partition pruning doesn't work with IS NULL clause in multikeyrange partition case
Next
From: Heikki Linnakangas
Date:
Subject: Re: Negotiating the SCRAM channel binding type