Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 7191ce8

Browse files
committed
Make all built-in lwlock tranche IDs fixed.
This makes the values more stable, which seems like a good thing for anybody who needs to look at at them. Alexander Korotkov and Amit Kapila
1 parent 1d0c3b3 commit 7191ce8

File tree

10 files changed

+24
-11
lines changed

10 files changed

+24
-11
lines changed

src/backend/access/transam/clog.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ CLOGShmemInit(void)
457457
{
458458
ClogCtl->PagePrecedes = CLOGPagePrecedes;
459459
SimpleLruInit(ClogCtl, "clog", CLOGShmemBuffers(), CLOG_LSNS_PER_PAGE,
460-
CLogControlLock, "pg_clog");
460+
CLogControlLock, "pg_clog", LWTRANCHE_CLOG_BUFFERS);
461461
}
462462

463463
/*

src/backend/access/transam/commit_ts.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,8 @@ CommitTsShmemInit(void)
485485

486486
CommitTsCtl->PagePrecedes = CommitTsPagePrecedes;
487487
SimpleLruInit(CommitTsCtl, "commit_timestamp", CommitTsShmemBuffers(), 0,
488-
CommitTsControlLock, "pg_commit_ts");
488+
CommitTsControlLock, "pg_commit_ts",
489+
LWTRANCHE_COMMITTS_BUFFERS);
489490

490491
commitTsShared = ShmemInitStruct("CommitTs shared",
491492
sizeof(CommitTimestampShared),

src/backend/access/transam/multixact.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -1831,10 +1831,12 @@ MultiXactShmemInit(void)
18311831

18321832
SimpleLruInit(MultiXactOffsetCtl,
18331833
"multixact_offset", NUM_MXACTOFFSET_BUFFERS, 0,
1834-
MultiXactOffsetControlLock, "pg_multixact/offsets");
1834+
MultiXactOffsetControlLock, "pg_multixact/offsets",
1835+
LWTRANCHE_MXACTOFFSET_BUFFERS);
18351836
SimpleLruInit(MultiXactMemberCtl,
18361837
"multixact_member", NUM_MXACTMEMBER_BUFFERS, 0,
1837-
MultiXactMemberControlLock, "pg_multixact/members");
1838+
MultiXactMemberControlLock, "pg_multixact/members",
1839+
LWTRANCHE_MXACTMEMBER_BUFFERS);
18381840

18391841
/* Initialize our shared state struct */
18401842
MultiXactState = ShmemInitStruct("Shared MultiXact State",

src/backend/access/transam/slru.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ SimpleLruShmemSize(int nslots, int nlsns)
162162

163163
void
164164
SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
165-
LWLock *ctllock, const char *subdir)
165+
LWLock *ctllock, const char *subdir, int tranche_id)
166166
{
167167
SlruShared shared;
168168
bool found;
@@ -215,7 +215,7 @@ SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
215215

216216
Assert(strlen(name) + 1 < SLRU_MAX_NAME_LENGTH);
217217
strlcpy(shared->lwlock_tranche_name, name, SLRU_MAX_NAME_LENGTH);
218-
shared->lwlock_tranche_id = LWLockNewTrancheId();
218+
shared->lwlock_tranche_id = tranche_id;
219219
shared->lwlock_tranche.name = shared->lwlock_tranche_name;
220220
shared->lwlock_tranche.array_base = shared->buffer_locks;
221221
shared->lwlock_tranche.array_stride = sizeof(LWLockPadded);

src/backend/access/transam/subtrans.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,8 @@ SUBTRANSShmemInit(void)
179179
{
180180
SubTransCtl->PagePrecedes = SubTransPagePrecedes;
181181
SimpleLruInit(SubTransCtl, "subtrans", NUM_SUBTRANS_BUFFERS, 0,
182-
SubtransControlLock, "pg_subtrans");
182+
SubtransControlLock, "pg_subtrans",
183+
LWTRANCHE_SUBTRANS_BUFFERS);
183184
/* Override default assumption that writes should be fsync'd */
184185
SubTransCtl->do_fsync = false;
185186
}

src/backend/commands/async.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ AsyncShmemInit(void)
480480
*/
481481
AsyncCtl->PagePrecedes = asyncQueuePagePrecedes;
482482
SimpleLruInit(AsyncCtl, "async", NUM_ASYNC_BUFFERS, 0,
483-
AsyncCtlLock, "pg_notify");
483+
AsyncCtlLock, "pg_notify", LWTRANCHE_ASYNC_BUFFERS);
484484
/* Override default assumption that writes should be fsync'd */
485485
AsyncCtl->do_fsync = false;
486486

src/backend/replication/logical/origin.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ ReplicationOriginShmemInit(void)
473473
{
474474
int i;
475475

476-
replication_states_ctl->tranche_id = LWLockNewTrancheId();
476+
replication_states_ctl->tranche_id = LWTRANCHE_REPLICATION_ORIGIN;
477477
replication_states_ctl->tranche.name = "ReplicationOrigins";
478478
replication_states_ctl->tranche.array_base =
479479
&replication_states[0].lock;

src/backend/storage/lmgr/predicate.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,8 @@ OldSerXidInit(void)
795795
*/
796796
OldSerXidSlruCtl->PagePrecedes = OldSerXidPagePrecedesLogically;
797797
SimpleLruInit(OldSerXidSlruCtl, "oldserxid",
798-
NUM_OLDSERXID_BUFFERS, 0, OldSerXidLock, "pg_serial");
798+
NUM_OLDSERXID_BUFFERS, 0, OldSerXidLock, "pg_serial",
799+
LWTRANCHE_OLDSERXID_BUFFERS);
799800
/* Override default assumption that writes should be fsync'd */
800801
OldSerXidSlruCtl->do_fsync = false;
801802

src/include/access/slru.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ typedef SlruCtlData *SlruCtl;
144144

145145
extern Size SimpleLruShmemSize(int nslots, int nlsns);
146146
extern void SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
147-
LWLock *ctllock, const char *subdir);
147+
LWLock *ctllock, const char *subdir, int tranche_id);
148148
extern int SimpleLruZeroPage(SlruCtl ctl, int pageno);
149149
extern int SimpleLruReadPage(SlruCtl ctl, int pageno, bool write_ok,
150150
TransactionId xid);

src/include/storage/lwlock.h

+8
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,17 @@ extern void LWLockInitialize(LWLock *lock, int tranche_id);
210210
typedef enum BuiltinTrancheIds
211211
{
212212
LWTRANCHE_MAIN,
213+
LWTRANCHE_CLOG_BUFFERS,
214+
LWTRANCHE_COMMITTS_BUFFERS,
215+
LWTRANCHE_SUBTRANS_BUFFERS,
216+
LWTRANCHE_MXACTOFFSET_BUFFERS,
217+
LWTRANCHE_MXACTMEMBER_BUFFERS,
218+
LWTRANCHE_ASYNC_BUFFERS,
219+
LWTRANCHE_OLDSERXID_BUFFERS,
213220
LWTRANCHE_WAL_INSERT,
214221
LWTRANCHE_BUFFER_CONTENT,
215222
LWTRANCHE_BUFFER_IO_IN_PROGRESS,
223+
LWTRANCHE_REPLICATION_ORIGIN,
216224
LWTRANCHE_REPLICATION_SLOT_IO_IN_PROGRESS,
217225
LWTRANCHE_PROC,
218226
LWTRANCHE_FIRST_USER_DEFINED

0 commit comments

Comments
 (0)