pgsql: Make parallel nbtree index scans use an LWLock.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Make parallel nbtree index scans use an LWLock.
Date: 2025-03-08 16:11:11
Message-ID: E1tqwlb-001Ro2-1X@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Make parallel nbtree index scans use an LWLock.

Teach parallel nbtree index scans to use an LWLock (not a spinlock) to
protect the scan's shared descriptor state.

Preparation for an upcoming patch that will add skip scan optimizations
to nbtree. That patch will create the need to occasionally allocate
memory while the scan descriptor is locked, while copying datums that
were serialized by another backend.

Author: Peter Geoghegan <pg(at)bowt(dot)ie>
Reviewed-By: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Discussion: https://postgr.es/m/CAH2-Wz=PKR6rB7qbx+Vnd7eqeB5VTcrW=iJvAsTsKbdG+kW_UA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/67fc4c9fd7fab7004b656e0cc27826c75d7ea7ad

Modified Files
--------------
src/backend/access/nbtree/nbtpreprocesskeys.c | 2 +-
src/backend/access/nbtree/nbtree.c | 27 +++++++++++++------------
src/backend/storage/lmgr/lwlock.c | 1 +
src/backend/utils/activity/wait_event_names.txt | 1 +
src/include/storage/lwlock.h | 1 +
5 files changed, 18 insertions(+), 14 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2025-03-08 16:25:16 pgsql: Clear errno before calling strtol() in spell.c.
Previous Message Alexander Korotkov 2025-03-08 10:49:35 Re: pgsql: reindexdb: Add the index-level REINDEX with multiple jobs