From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: nbtree: Move fastpath NULL descent stack assertion. |
Date: | 2020-03-11 00:27:07 |
Message-ID: | E1jBpDH-0003LV-0a@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
nbtree: Move fastpath NULL descent stack assertion.
Commit 074251db added an assertion that verified the fastpath/rightmost
page insert optimization's assumption about free space: There should
always be enough free space on the page to insert the new item without
splitting the page. Otherwise, we end up using the "concurrent root
page split" phony/fake stack path in _bt_insert_parent(). This does not
lead to incorrect behavior, but it is likely to be far slower than
simply using the regular _bt_search() path. The assertion catches
serious performance bugs that would probably take a long time to detect
any other way.
It seems much more natural to make this assertion just before the point
that we generate a fake/phony descent stack. Move the assert there.
This also makes _bt_insertonpg() a bit more readable.
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/39eabec90451d8badbba9b3e938d6d05432a0517
Modified Files
--------------
src/backend/access/nbtree/nbtinsert.c | 46 +++++++++++++++--------------------
1 file changed, 20 insertions(+), 26 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2020-03-11 01:04:40 | pgsql: Remove stray parenthesis in nbtree.h. |
Previous Message | Tom Lane | 2020-03-10 21:34:19 | pgsql: Marginal comments and docs cleanup. |