Re: Ignoring BRIN for HOT udpates seems broken
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Matthias van de Meent <boekewurm+postgres@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-06-06T07:08:08Z
Lists: pgsql-hackers
Attachments
- 0001-Revert-changes-in-HOT-handling-of-BRIN-indexes.patch (text/x-patch) patch 0001
On 6/1/22 22:38, Robert Haas wrote: > On Sat, May 28, 2022 at 4:51 PM Tomas Vondra > <tomas.vondra@enterprisedb.com> wrote: >> Yeah, I think that might/should work. We could still create the HOT >> chain, but we'd have to update the BRIN indexes. But that seems like a >> fairly complicated change to be done this late for PG15. > > Yeah, I think a revert is better for now. But I agree that the basic > idea seems salvageable. I think that the commit message is correct > when it states that "When determining whether an index update may be > skipped by using HOT, we can ignore attributes indexed only by BRIN > indexes." However, that doesn't mean that we can ignore the need to > update those indexes. In that regard, the commit message makes it > sound like all is well, because it states that "the page range summary > will be updated anyway" which reads to me like the indexes are in fact > getting updated. Your example, however, seems to show that the indexes > are not getting updated. > Yeah, agreed :-( I agree we can probably salvage some of the idea, but it's far too late for major reworks in PG15. Attached is a patch reverting both commits (5753d4ee32 and fe60b67250). This changes the IndexAmRoutine struct, so it's an ABI break. That's not great post-beta :-( In principle we might also leave amhotblocking in the struct but ignore it in the code (and treat it as false), but that seems weird and it's going to be a pain when backpatching. Opinions? regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Ignore BRIN indexes when checking for HOT updates
- 19d8e2308bc5 16.0 landed
-
Revert changes in HOT handling of BRIN indexes
- e3fcca0d0d24 15.0 landed
-
Ignore BRIN indexes when checking for HOT udpates
- 5753d4ee320b 15.0 cited