postgrespro.git / summary / log / commit / refs

commit    489e431ba56b10f5736fb54a045ca40880f11bbc
Author:   Peter Geoghegan <pg@bowt.ie>
Date:     Wed May 15 23:53:11 2019 +0000

    Remove obsolete nbtree insertion comment.
    
    Remove a Berkeley-era comment above _bt_insertonpg() that admonishes the
    reader to grok Lehman and Yao's paper before making any changes.  This
    made a certain amount of sense back when _bt_insertonpg() was
    responsible for most of the things that are now spread across
    _bt_insertonpg(), _bt_findinsertloc(), _bt_insert_parent(), and
    _bt_split(), but it doesn't work like that anymore.
    
    I believe that this comment alludes to the need to "couple" or "crab"
    buffer locks as we ascend the tree as page splits cascade upwards.  The
    nbtree README already explains this in detail, which seems sufficient.
    Besides, the changes to page splits made by commit 40dae7ec537 altered
    the exact details of how buffer locks are retained during splits; Lehman
    and Yao's original algorithm seems to release the lock on the left child
    page/buffer slightly earlier than _bt_insertonpg()/_bt_insert_parent()
    can.


src/backend/access/nbtree/nbtinsert.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index 47ae7ec8b8..0a9472c71b 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -926,9 +926,6 @@ _bt_stepright(Relation rel, BTInsertState insertstate, BTStack stack) * inserting to a non-leaf page, 'cbuf' is the left-sibling of the page * we're inserting the downlink for. This function will clear the * INCOMPLETE_SPLIT flag on it, and release the buffer. - * - * The locking interactions in this code are critical. You should - * grok Lehman and Yao's paper before making any changes. *---------- */ static void [parent: 8a0f0ad54047]