lazy_scan_heap() should release lock on buffer before vacuuming FSM
Melanie Plageman <melanieplageman@gmail.com>
From: Melanie Plageman <melanieplageman@gmail.com>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Cc: Andres Freund <andres@anarazel.de>
Date: 2023-11-13T22:13:32Z
Lists: pgsql-hackers
Attachments
- v1-0001-Release-lock-on-heap-buffer-before-vacuuming-FSM.patch (text/x-patch) patch v1-0001
Hi, I noticed that in lazy_scan_heap(), when there are no indexes on the table being vacuumed, we don't release the lock on the heap page buffer before vacuuming the freespace map. Other call sites of FreeSpaceMapVacuumRange() hold no such lock. It seems like a waste to hold a lock we don't need. ISTM the fix (attached) is just to move down the call to FreeSpaceMapVacuumRange() to after we've released the lock and recorded the space we just freed. - Melanie
Commits
-
Release lock on heap buffer before vacuuming FSM
- b2e237afddc5 17.0 landed