Thread
-
Re: Streamify more code paths
Nazir Bilal Yavuz <byavuz81@gmail.com> — 2025-12-29T10:58:19Z
Hi, On Sun, 28 Dec 2025 at 14:46, Xuneng Zhou <xunengzhou@gmail.com> wrote: > > Hi, > > > > Two more to go: > > patch 5: Streamify log_newpage_range() WAL logging path > > patch 6: Streamify hash index VACUUM primary bucket page reads > > > > Benchmarks will be conducted soon. > > > > v6 in the last message has a problem and has not been updated. Attach > the right one again. Sorry for the noise. 0003 and 0006: You need to add 'StatApproxReadStreamPrivate' and 'HashBulkDeleteStreamPrivate' to the typedefs.list. 0005: @@ -1321,8 +1341,10 @@ log_newpage_range(Relation rel, ForkNumber forknum, nbufs = 0; while (nbufs < XLR_MAX_BLOCK_ID && blkno < endblk) { - Buffer buf = ReadBufferExtended(rel, forknum, blkno, - RBM_NORMAL, NULL); + Buffer buf = read_stream_next_buffer(stream, NULL); + + if (!BufferIsValid(buf)) + break; We are loosening a check here, there should not be a invalid buffer in the stream until the endblk. I think you can remove this BufferIsValid() check, then we can learn if something goes wrong. 0006: You can use read_stream_reset() instead of read_stream_end(), then you can use the same stream with different variables, I believe this is the preferred way. Rest LGTM! -- Regards, Nazir Bilal Yavuz Microsoft