mirror of
https://github.com/postgres/postgres.git
synced 2025-11-21 00:42:43 +03:00
Move each SLRU's lwlocks to a separate tranche.
This makes it significantly easier to identify these lwlocks in LWLOCK_STATS or Trace_lwlocks output. It's also arguably better from a modularity standpoint, since lwlock.c no longer needs to know anything about the LWLock needs of the higher-level SLRU facility. Ildus Kurbangaliev, reviewd by Álvaro Herrera and by me.
This commit is contained in:
@@ -76,11 +76,6 @@
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
#include "access/clog.h"
|
||||
#include "access/commit_ts.h"
|
||||
#include "access/multixact.h"
|
||||
#include "access/subtrans.h"
|
||||
#include "commands/async.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pg_trace.h"
|
||||
#include "postmaster/postmaster.h"
|
||||
@@ -364,24 +359,6 @@ NumLWLocks(void)
|
||||
/* proc.c needs one for each backend or auxiliary process */
|
||||
numLocks += MaxBackends + NUM_AUXILIARY_PROCS;
|
||||
|
||||
/* clog.c needs one per CLOG buffer */
|
||||
numLocks += CLOGShmemBuffers();
|
||||
|
||||
/* commit_ts.c needs one per CommitTs buffer */
|
||||
numLocks += CommitTsShmemBuffers();
|
||||
|
||||
/* subtrans.c needs one per SubTrans buffer */
|
||||
numLocks += NUM_SUBTRANS_BUFFERS;
|
||||
|
||||
/* multixact.c needs two SLRU areas */
|
||||
numLocks += NUM_MXACTOFFSET_BUFFERS + NUM_MXACTMEMBER_BUFFERS;
|
||||
|
||||
/* async.c needs one per Async buffer */
|
||||
numLocks += NUM_ASYNC_BUFFERS;
|
||||
|
||||
/* predicate.c needs one per old serializable xid buffer */
|
||||
numLocks += NUM_OLDSERXID_BUFFERS;
|
||||
|
||||
/* slot.c needs one for each slot */
|
||||
numLocks += max_replication_slots;
|
||||
|
||||
|
||||
@@ -794,7 +794,7 @@ OldSerXidInit(void)
|
||||
* Set up SLRU management of the pg_serial data.
|
||||
*/
|
||||
OldSerXidSlruCtl->PagePrecedes = OldSerXidPagePrecedesLogically;
|
||||
SimpleLruInit(OldSerXidSlruCtl, "OldSerXid SLRU Ctl",
|
||||
SimpleLruInit(OldSerXidSlruCtl, "oldserxid",
|
||||
NUM_OLDSERXID_BUFFERS, 0, OldSerXidLock, "pg_serial");
|
||||
/* Override default assumption that writes should be fsync'd */
|
||||
OldSerXidSlruCtl->do_fsync = false;
|
||||
|
||||
Reference in New Issue
Block a user