postgresql/contrib/pageinspect
Alexander Korotkov f1ea98a797 Reduce non-leaf keys overlap in GiST indexes produced by a sorted build
The GiST sorted build currently chooses split points according to the only page
space utilization.  That may lead to higher non-leaf keys overlap and, in turn,
slower search query answers.

This commit makes the sorted build use the opclass's picksplit method.  Once
four pages at the level are accumulated, the picksplit method is applied until
each split partition fits the page.  Some of our split algorithms could show
significant performance degradation while processing 4-times more data at once.
But those opclasses haven't received the sorted build support and shouldn't
receive it before their split algorithms are improved.

Discussion: https://postgr.es/m/CAHqSB9jqtS94e9%3D0vxqQX5dxQA89N95UKyz-%3DA7Y%2B_YJt%2BVW5A%40mail.gmail.com
Author: Aliaksandr Kalenik, Sergei Shoulbakov, Andrey Borodin
Reviewed-by: Björn Harrtell, Darafei Praliaskouski, Andres Freund
Reviewed-by: Alexander Korotkov
2022-02-07 23:20:42 +03:00
..
expected Reduce non-leaf keys overlap in GiST indexes produced by a sorted build 2022-02-07 23:20:42 +03:00
sql pageinspect: Improve page_header() for pages of 32kB 2021-07-12 11:05:27 +09:00
.gitignore pageinspect: Add tests 2016-11-01 14:02:16 -04:00
Makefile pageinspect: Improve page_header() for pages of 32kB 2021-07-12 11:05:27 +09:00
brinfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
btreefuncs.c pageinspect: Make page deletion elog less chatty. 2021-09-17 14:19:51 -07:00
fsmfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
ginfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
gistfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
hashfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
heapfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
pageinspect--1.0--1.1.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pageinspect--1.1--1.2.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pageinspect--1.2--1.3.sql pageinspect/BRIN: minor tweaks 2014-12-02 12:20:50 -03:00
pageinspect--1.3--1.4.sql Add forgotten file in commit d6061f83a1 2015-11-25 16:59:07 +03:00
pageinspect--1.4--1.5.sql Update pageinspect extension for parallel query. 2016-06-09 17:18:09 -04:00
pageinspect--1.5--1.6.sql pageinspect: Add bt_page_items function with bytea argument 2017-04-04 23:52:55 -04:00
pageinspect--1.5.sql Update pageinspect extension for parallel query. 2016-06-09 17:18:09 -04:00
pageinspect--1.6--1.7.sql Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
pageinspect--1.7--1.8.sql pageinspect: Fix types used for bt_metap() columns. 2020-03-07 16:44:53 -08:00
pageinspect--1.8--1.9.sql Use full 64-bit XIDs in deleted nbtree pages. 2021-02-24 18:41:34 -08:00
pageinspect--1.9--1.10.sql pageinspect: Improve page_header() for pages of 32kB 2021-07-12 11:05:27 +09:00
pageinspect.control pageinspect: Improve page_header() for pages of 32kB 2021-07-12 11:05:27 +09:00
pageinspect.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
rawpage.c Update copyright for 2022 2022-01-07 19:04:57 -05:00