Re: EXPLAIN: showing ReadStream / prefetch stats

From: Tomas Vondra <tomas(at)vondra(dot)me>
To: Nikolay Samokhvalov <nik(at)postgres(dot)ai>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: EXPLAIN: showing ReadStream / prefetch stats
Date: 2026-09-22 19:13:52
Message-ID: c343af3b-3d9b-48c1-9545-bd5c01929376@vondra.me
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 9/22/26 21:02, Nikolay Samokhvalov wrote:
> On Tue, Sep 22, 2026 at 8:23 AM Tomas Vondra <tomas(at)vondra(dot)me> wrote:
>> It's not clear to me why this would be desirable. The query execution
>> clearly *does* perform the I/O, even if the buffers end up not being
>> used. Hiding that would be very confusing / misleading.
>>
>> In other words, I/O and buffers may disagree - that's not a bug. Those
>> counters are tracking different things.
>
> Thanks all. Agreed that issued I/O should remain accounted for.
>
> Is Prefetch avg/max also intended to include buffers discarded by
> read_stream_reset()? If so, agreed, the patch is wrong. The comment above
> read_stream_count_prefetch() says it is called once per buffer returned
> to the consumer.
>

Yeah, that's a good point. The comment is misleading. I didn't consider
that read_stream_next_buffer() is called from _reset() when I wrote it.

Will think how to clarify it.

regards

--
Tomas Vondra

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Merlin Moncure 2026-09-22 19:34:06 Up to 50x degradation in dblink performance when receiving notice traffic 19 vs 18
Previous Message Nikolay Samokhvalov 2026-09-22 19:02:56 Re: EXPLAIN: showing ReadStream / prefetch stats