Re: pgstattuple: Use streaming read API in pgstatindex functions

Shinya Kato <shinya11.kato@gmail.com>

From: Shinya Kato <shinya11.kato@gmail.com>
To: Xuneng Zhou <xunengzhou@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@lists.postgresql.org>, Nazir Bilal Yavuz <byavuz81@gmail.com>, Thomas Munro <thomas.munro@gmail.com>, wenhui qiu <qiuwenhuifx@gmail.com>
Date: 2025-10-16T08:20:27Z
Lists: pgsql-hackers
Hi,

On Wed, Oct 15, 2025 at 10:25 AM Xuneng Zhou <xunengzhou@gmail.com> wrote:

> Hi,
>
> Here’s the updated summary report(cold cache, fragmented index), now
> including results for the streaming I/O + io_uring configuration.
>
> [image: image.png]
>

Thank you for the additional tests. I can see the image on Gmail, but I
cannot on pgsql-hackers archive [0], so it might be a good idea to attach
it and not to paste it on the body.

I saw the patch and have a few minor comments.

+ p.current_blocknum = 1;

To improve readability, how about using the following, which is consistent
with nbtree.c [1]?
p.current_blocknum = BTREE_METAPAGE + 1;

Similarly, for hash index:
p.current_blocknum = HASH_METAPAGE + 1;

+ /* Unlock and release buffer */
  UnlockReleaseBuffer(buf);

I think this comment is redundant since the function name
UnlockReleaseBuffer is self-explanatory. I suggest omitting it from
pgstathashindex and removing the existing one from pgstatindex_impl.


[0]
https://www.postgresql.org/message-id/CABPTF7XyEW_3or2yFxBcHhVWAph5NnThLN%3DqS9cNecM1Uy_K%2Bw%40mail.gmail.com
[1]
https://github.com/postgres/postgres/blob/41c674d2e31e8304a6edbcb5183d326798ba00f6/src/backend/access/nbtree/nbtree.c#L1261

-- 
Best regards,
Shinya Kato
NTT OSS Center