Re: [HACKERS] [WIP] Effective storage of duplicates in B-tree index.
Peter Geoghegan <pg@bowt.ie>
On Wed, Feb 19, 2020 at 11:16 AM Peter Geoghegan <pg@bowt.ie> wrote: > On Wed, Feb 19, 2020 at 8:14 AM Anastasia Lubennikova > <a.lubennikova@postgrespro.ru> wrote: > > Thank you for this work. I've looked through the patches and they seem > > to be ready for commit. > > I haven't yet read recent documentation and readme changes, so maybe > > I'll send some more feedback tomorrow. > > Great. I should add: I plan to commit the patch within the next 7 days. I believe that the design of deduplication itself is solid; it has many more strengths than weaknesses. It works in a way that complements the existing approach to page splits. The optimization can easily be turned off (and easily turned back on again). contrib/amcheck can detect almost any possible form of corruption that could affect a B-Tree index that has posting list tuples. I have spent months microbenchmarking every little aspect of this patch in isolation. I've also spent a lot of time on conventional benchmarking. It seems quite possible that somebody won't like some aspect of the user interface. I am more than willing to work with other contributors on any issue in that area that comes to light. I don't see any point in waiting for other hackers to speak up before the patch is committed, though. Anastasia posted the first version of this patch in August of 2015, and there have been over 30 revisions of it since the project was revived in 2019. Everyone has been given ample opportunity to offer input. -- Peter Geoghegan
Commits
-
Teach pageinspect about nbtree deduplication.
- 93ee38eade1b 13.0 landed
-
Doc: Fix deduplicate_items index term.
- e537aed61db7 13.0 landed
-
Revise BTP_HAS_GARBAGE nbtree VACUUM comments.
- 4b25f5d0ba01 13.0 cited
-
Remove unneeded "pin scan" nbtree VACUUM code.
- 9f83468b3536 13.0 landed
-
Cleanup code in reloptions.h regarding reloption handling
- 50d22de9325f 13.0 cited
-
Catch invalid typlens in a couple of places
- 8557a6f10ca6 13.0 cited
-
Compute XID horizon for page level index vacuum on primary.
- 558a9165e081 12.0 cited
-
Make heap TID a tiebreaker nbtree index column.
- dd299df8189b 12.0 cited
-
Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases
- 3e4b7d87988f 9.6.0 cited
-
Revert buggy optimization of index scans
- c7111d11b188 9.6.0 cited
-
Restructure index access method API to hide most of it at the C level.
- 65c5fcd353a8 9.6.0 cited
-
Reduce pinning and buffer content locking for btree scans.
- 2ed5b87f96d4 9.5.0 cited
-
Avoid scanning nulls at the beginning of a btree index scan.
- 1a77f8b63d15 9.2.0 cited