Re: Use read streams in pg_visibility

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Nazir Bilal Yavuz <byavuz81@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-08-19T06:30:23Z
Lists: pgsql-hackers
On Tue, Aug 13, 2024 at 03:22:27PM +0300, Nazir Bilal Yavuz wrote:
> Hi,
> 
> I am working on using the read stream in pg_visibility. There are two
> places to use it:
> 
> 1- collect_visibility_data()
> 
> This one is straightforward. I created a read stream object if
> 'include_pd' is true because read I/O is done when 'include_pd' is
> true. There is ~4% timing improvement with this change. I started the
> server with the default settings and created a 6 GB table. Then run
> 100 times pg_visibility() by clearing the OS cache between each run.
> ----------

Mind sharing a script for reproducibility?  Except for the drop_caches
part, of course..  
--
Michael

Commits

  1. Optimize pg_visibility with read streams.

  2. Revert "Optimize pg_visibility with read streams."

  3. Fix stack variable scope from previous commit.

  4. Add block_range_read_stream_cb(), to deduplicate code.