Re: Making all nbtree entries unique by having heap TIDs participate in comparisons

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Claudio Freire <klaussfreire(at)gmail(dot)com>, Anastasia Lubennikova <a(dot)lubennikova(at)postgrespro(dot)ru>, "Andrey V(dot) Lepikhov" <a(dot)lepikhov(at)postgrespro(dot)ru>
Subject: Re: Making all nbtree entries unique by having heap TIDs participate in comparisons
Date: 2019-03-18 00:59:25
Message-ID: CAH2-WzneYKtCE-+Z13tgjm_RDOL_UZ=qKU_V6nLchD6n-_Uukg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Mar 16, 2019 at 1:05 PM Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:
> > Actually, how about "rootsearch", or "rootdescend"? You're supposed to
> > hyphenate "re-find", and so it doesn't really work as a function
> > argument name.
>
> Works for me.

Attached is v18 of patch series, which calls the new verification
option "rootdescend" verification.

As previously stated, I intend to commit the first 4 patches (up to
and including this amcheck "rootdescend" patch) during the workday
tomorrow, Pacific time.

Other changes:

* Further consolidation of the nbtree.h comments from second patch, so
that the on-disk representation overview that you requested a while
back has all the details. A couple of these were moved from macro
comments also in nbtree.h, and were missed earlier.

* Tweaks to comments on _bt_binsrch_insert() and its callers.
Streamlined to reflect the fact that it doesn't need to talk so much
about cases that only apply to internal pages. Explicitly stated
requirements for caller.

* Made _bt_binsrch_insert() set InvalidOffsetNumber for bounds in case
were valid bounds cannot be established initially. This seemed like a
good idea.

* A few more defensive assertion were added to nbtinsert.c (also
related to _bt_binsrch_insert()).

Thanks
--
Peter Geoghegan

Attachment Content-Type Size
v18-0005-Add-split-after-new-tuple-optimization.patch application/octet-stream 12.0 KB
v18-0001-Refactor-nbtree-insertion-scankeys.patch application/octet-stream 65.6 KB
v18-0004-Allow-amcheck-to-re-find-tuples-using-new-search.patch application/octet-stream 16.1 KB
v18-0003-Consider-secondary-factors-during-nbtree-splits.patch application/octet-stream 51.8 KB
v18-0006-Add-high-key-continuescan-optimization.patch application/octet-stream 13.4 KB
v18-0007-DEBUG-Add-pageinspect-instrumentation.patch application/octet-stream 7.8 KB
v18-0002-Make-heap-TID-a-tiebreaker-nbtree-index-column.patch application/octet-stream 154.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2019-03-18 01:06:19 Re: Performance issue in foreign-key-aware join estimation
Previous Message Tsunakawa, Takayuki 2019-03-18 00:53:12 RE: Timeout parameters