pgsql: Reduce non-leaf keys overlap in GiST indexes produced by a sorte

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Reduce non-leaf keys overlap in GiST indexes produced by a sorte
Date: 2022-02-07 20:21:16
Message-ID: E1nHAVg-0006y9-U5@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f1ea98a7975e15cefdb446385880a2f55224ee7d

Modified Files
--------------
contrib/pageinspect/expected/gist.out | 18 +--
src/backend/access/gist/README | 16 ++
src/backend/access/gist/gistbuild.c | 271 +++++++++++++++++++++-------------
src/tools/pgindent/typedefs.list | 2 +-
4 files changed, 197 insertions(+), 110 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-02-07 21:16:36 pgsql: Stamp 14.2.
Previous Message Peter Eisentraut 2022-02-07 12:57:05 pgsql: Translation updates