summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistget.c
diff options
context:
space:
mode:
authorAlexander Korotkov <akorotkov@postgresql.org>2018-07-28 00:31:40 +0300
committerAlexander Korotkov <akorotkov@postgresql.org>2018-07-28 00:31:40 +0300
commitd2086b08b023c0749a53d617ff3fe0f052646254 (patch)
tree697c5ce9aec417bc454fc41a322a733472405e14 /src/backend/access/gist/gistget.c
parent8a9b72c3ea40c1ca1094bdcfd21a5263aee806f2 (diff)
downloadpostgresql-d2086b08b023c0749a53d617ff3fe0f052646254.tar.gz
Reduce path length for locking leaf B-tree pages during insertion
In our B-tree implementation appropriate leaf page for new tuple insertion is acquired using _bt_search() function. This function always returns leaf page locked in shared mode. In order to obtain exclusive lock, caller have to relock the page. This commit makes _bt_search() function lock leaf page immediately in exclusive mode when needed. That removes unnecessary relock and, in turn reduces lock contention for B-tree leaf pages. Our experiments on multi-core systems showed acceleration up to 4.5 times in corner case. Discussion: https://postgr.es/m/CAPpHfduAMDFMNYTCN7VMBsFg_hsf0GqiqXnt%2BbSeaJworwFoig%40mail.gmail.com Author: Alexander Korotkov Reviewed-by: Yoshikazu Imai, Simon Riggs, Peter Geoghegan
Diffstat (limited to 'src/backend/access/gist/gistget.c')
0 files changed, 0 insertions, 0 deletions