Hi Bilal, Thanks for your review!
On Fri, Dec 26, 2025 at 6:59 PM Nazir Bilal Yavuz <[email protected]> wrote: > > Hi, > > Thank you for working on this! > > On Thu, 25 Dec 2025 at 09:34, Xuneng Zhou <[email protected]> wrote: > > > > Hi, > > > > On Thu, Dec 25, 2025 at 1:51 PM Xuneng Zhou <[email protected]> wrote: > > > > > > Hi Hackers, > > > > > > I noticed several additional paths in contrib modules, beyond [1], > > > that are potentially suitable for streamification: > > > > > > 1) pgstattuple — pgstatapprox.c and parts of pgstattuple_approx_internal > > > 2) Bloom — scan paths in blgetbitmap() and maintenance paths in > > > blbulkdelete() > > > > > > The following patches streamify those code paths. No benchmarks have > > > been run yet. > > > > > > [1] > > > https://www.postgresql.org/message-id/flat/CABPTF7UeN2o-trr9r7K76rZExnO2M4SLfvTfbUY2CwQjCekgnQ%40mail.gmail.com > > > > > > Feedbacks welcome. > > > > > > > One more in ginvacuumcleanup(). > > 0001, 0002 and 0004 LGTM. > > 0003: > > + buf = read_stream_next_buffer(stream, NULL); > + if (buf == InvalidBuffer) > + break; > > I think we are loosening the check here. We were sure that there were > no InvalidBuffers until the nblocks. Streamified version does not have > this check, it exits from the loop the first time it sees an > InvalidBuffer, which may be wrong. You might want to add > 'Assert(p.current_blocknum == nblocks);' before read_stream_end() to > have a similar check. > Agree. The check has been added in v2 per your suggestion. -- Best, Xuneng
v2-0001-Switch-Bloom-scan-paths-to-streaming-read.patch
Description: Binary data
v2-0003-Streamify-heap-bloat-estimation-scan-Introduc.patch
Description: Binary data
v2-0002-Streamify-Bloom-VACUUM-paths-Use-streaming-re.patch
Description: Binary data
v2-0004-Replace-synchronous-ReadBufferExtended-loop-with.patch
Description: Binary data
