Re: BitmapHeapScan streaming read user and prelim refactoring

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
Subject: Re: BitmapHeapScan streaming read user and prelim refactoring
Date: 2024-02-16 17:35:59
Message-ID: 20240216173559.xiy5xcl5dqmsprns@liskov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

In the attached v3, I've reordered the commits, updated some errant
comments, and improved the commit messages.

I've also made some updates to the TIDBitmap API that seem like a
clarity improvement to the API in general. These also reduce the diff
for GIN when separating the TBMIterateResult from the
TBM[Shared]Iterator. And these TIDBitmap API changes are now all in
their own commits (previously those were in the same commit as adding
the BitmapHeapScan streaming read user).

The three outstanding issues I see in the patch set are:
1) the lossy and exact page counters issue described in my previous
email
2) the TODO in the TIDBitmap API changes about being sure that setting
TBMIterateResult->blockno to InvalidBlockNumber is sufficient for
indicating an invalid TBMIterateResult (and an exhausted bitmap)
3) the streaming read API is not committed yet, so the last two patches
are not "done"

- Melanie

Attachment Content-Type Size
v3-0001-BitmapHeapScan-begin-scan-after-bitmap-creation.patch text/x-diff 6.3 KB
v3-0002-BitmapHeapScan-set-can_skip_fetch-later.patch text/x-diff 2.2 KB
v3-0003-Push-BitmapHeapScan-skip-fetch-optimization-into-.patch text/x-diff 14.2 KB
v3-0004-BitmapPrefetch-use-prefetch-block-recheck-for-ski.patch text/x-diff 2.2 KB
v3-0005-Update-BitmapAdjustPrefetchIterator-parameter-typ.patch text/x-diff 2.3 KB
v3-0006-BitmapHeapScan-scan-desc-counts-lossy-and-exact-p.patch text/x-diff 4.0 KB
v3-0007-Reduce-scope-of-BitmapHeapScan-tbmiterator-local-.patch text/x-diff 2.9 KB
v3-0008-Remove-table_scan_bitmap_next_tuple-parameter-tbm.patch text/x-diff 4.1 KB
v3-0009-Make-table_scan_bitmap_next_block-async-friendly.patch text/x-diff 19.3 KB
v3-0010-Hard-code-TBMIterateResult-offsets-array-size.patch text/x-diff 5.3 KB
v3-0011-Separate-TBM-Shared-Iterator-and-TBMIterateResult.patch text/x-diff 19.3 KB
v3-0012-Streaming-Read-API.patch text/x-diff 56.0 KB
v3-0013-BitmapHeapScan-uses-streaming-read-API.patch text/x-diff 28.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Antonin Houska 2024-02-16 17:43:29 Re: why there is not VACUUM FULL CONCURRENTLY?
Previous Message Jeff Davis 2024-02-16 17:31:18 Re: Improve WALRead() to suck data directly from WAL buffers when possible