Arrange for read-only accesses to SLRU page buffers to take only a shared
Tom Lane <tgl@sss.pgh.pa.us>
Arrange for read-only accesses to SLRU page buffers to take only a shared lock, not exclusive, if the desired page is already in memory. This can be demonstrated to be a significant win on the pg_subtrans cache when there is a large window of open transactions. It should be useful for pg_clog as well. I didn't try to make GetMultiXactIdMembers() use the code, as that would have taken some restructuring, and what with the local cache for multixact contents it probably wouldn't really make a difference. Per my recent proposal.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/transam/clog.c | modified | +3 −3 |
| src/backend/access/transam/multixact.c | modified | +3 −3 |
| src/backend/access/transam/slru.c | modified | +120 −14 |
| src/backend/access/transam/subtrans.c | modified | +3 −3 |
| src/include/access/slru.h | modified | +16 −5 |