Implement LockBufferForCleanup(), which will allow concurrent VACUUM
Tom Lane <tgl@sss.pgh.pa.us>
Implement LockBufferForCleanup(), which will allow concurrent VACUUM to wait until it's safe to remove tuples and compact free space in a shared buffer page. Miscellaneous small code cleanups in bufmgr, too.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/transam/xact.c | modified | +2 −2 |
| src/backend/storage/buffer/buf_init.c | modified | +1 −3 |
| src/backend/storage/buffer/bufmgr.c | modified | +168 −167 |
| src/backend/storage/buffer/freelist.c | modified | +29 −34 |
| src/backend/storage/buffer/README | added | +100 −0 |
| src/backend/storage/ipc/sinval.c | modified | +29 −2 |
| src/backend/storage/lmgr/proc.c | modified | +46 −1 |
| src/include/storage/buf_internals.h | modified | +29 −38 |
| src/include/storage/bufmgr.h | modified | +4 −5 |
| src/include/storage/proc.h | modified | +6 −1 |
| src/include/storage/sinval.h | modified | +4 −1 |