Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2584029

Browse files
committed
Rename locking structure names to be clearer. Add narrative to
backend flowchart.
1 parentf21fa6a commit2584029

File tree

9 files changed

+324
-311
lines changed

9 files changed

+324
-311
lines changed

‎src/backend/storage/lmgr/lock.c

Lines changed: 188 additions & 188 deletions
Large diffs are not rendered by default.

‎src/backend/storage/lmgr/multi.c

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*
1313
*
1414
* IDENTIFICATION
15-
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/multi.c,v 1.18 1998/06/28 21:17:35 momjian Exp $
15+
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/multi.c,v 1.19 1998/06/30 02:33:31 momjian Exp $
1616
*
1717
* NOTES:
1818
* (1) The lock.c module assumes that the caller here is doing
@@ -30,10 +30,10 @@
3030
#include"miscadmin.h"/* MyDatabaseId */
3131

3232
staticbool
33-
MultiAcquire(LockTableIdtableId,LOCKTAG*tag,LOCKTYPElocktype,
33+
MultiAcquire(LOCKMETHODlockmethod,LOCKTAG*tag,LOCKMODElockmode,
3434
PG_LOCK_LEVELlevel);
3535
staticbool
36-
MultiRelease(LockTableIdtableId,LOCKTAG*tag,LOCKTYPElocktype,
36+
MultiRelease(LOCKMETHODlockmethod,LOCKTAG*tag,LOCKMODElockmode,
3737
PG_LOCK_LEVELlevel);
3838

3939
/*
@@ -78,25 +78,27 @@ static intMultiPrios[] = {
7878
* Lock table identifier for this lock table. The multi-level
7979
* lock table is ONE lock table, not three.
8080
*/
81-
LockTableIdMultiTableId= (LockTableId)NULL;
82-
LockTableIdShortTermTableId= (LockTableId)NULL;
81+
LOCKMETHODMultiTableId= (LOCKMETHOD)NULL;
82+
#ifdefNOT_USED
83+
LOCKMETHODShortTermTableId= (LOCKMETHOD)NULL;
84+
#endif
8385

8486
/*
8587
* Create the lock table described by MultiConflicts and Multiprio.
8688
*/
87-
LockTableId
89+
LOCKMETHOD
8890
InitMultiLevelLocks()
8991
{
90-
inttableId;
92+
intlockmethod;
9193

92-
tableId=LockTableInit("LockTable",MultiConflicts,MultiPrios,5);
93-
MultiTableId=tableId;
94+
lockmethod=LockMethodTableInit("MultiLevelLockTable",MultiConflicts,MultiPrios,5);
95+
MultiTableId=lockmethod;
9496
if (!(MultiTableId))
9597
elog(ERROR,"InitMultiLocks: couldnt initialize lock table");
9698
/* -----------------------
9799
* No short term lock table for now. -Jeff 15 July 1991
98100
*
99-
* ShortTermTableId = LockTableRename(tableId);
101+
* ShortTermTableId = LockTableRename(lockmethod);
100102
* if (! (ShortTermTableId)) {
101103
* elog(ERROR,"InitMultiLocks: couldnt rename lock table");
102104
* }
@@ -111,7 +113,7 @@ InitMultiLevelLocks()
111113
* Returns: TRUE if the lock can be set, FALSE otherwise.
112114
*/
113115
bool
114-
MultiLockReln(LockInfolinfo,LOCKTYPElocktype)
116+
MultiLockReln(LockInfolinfo,LOCKMODElockmode)
115117
{
116118
LOCKTAGtag;
117119

@@ -122,7 +124,7 @@ MultiLockReln(LockInfo linfo, LOCKTYPE locktype)
122124
MemSet(&tag,0,sizeof(tag));
123125
tag.relId=linfo->lRelId.relId;
124126
tag.dbId=linfo->lRelId.dbId;
125-
return (MultiAcquire(MultiTableId,&tag,locktype,RELN_LEVEL));
127+
return (MultiAcquire(MultiTableId,&tag,lockmode,RELN_LEVEL));
126128
}
127129

128130
/*
@@ -134,7 +136,7 @@ MultiLockReln(LockInfo linfo, LOCKTYPE locktype)
134136
*at the page and relation level.
135137
*/
136138
bool
137-
MultiLockTuple(LockInfolinfo,ItemPointertidPtr,LOCKTYPElocktype)
139+
MultiLockTuple(LockInfolinfo,ItemPointertidPtr,LOCKMODElockmode)
138140
{
139141
LOCKTAGtag;
140142

@@ -149,14 +151,14 @@ MultiLockTuple(LockInfo linfo, ItemPointer tidPtr, LOCKTYPE locktype)
149151

150152
/* not locking any valid Tuple, just the page */
151153
tag.tupleId=*tidPtr;
152-
return (MultiAcquire(MultiTableId,&tag,locktype,TUPLE_LEVEL));
154+
return (MultiAcquire(MultiTableId,&tag,lockmode,TUPLE_LEVEL));
153155
}
154156

155157
/*
156158
* same as above at page level
157159
*/
158160
bool
159-
MultiLockPage(LockInfolinfo,ItemPointertidPtr,LOCKTYPElocktype)
161+
MultiLockPage(LockInfolinfo,ItemPointertidPtr,LOCKMODElockmode)
160162
{
161163
LOCKTAGtag;
162164

@@ -179,7 +181,7 @@ MultiLockPage(LockInfo linfo, ItemPointer tidPtr, LOCKTYPE locktype)
179181
tag.relId=linfo->lRelId.relId;
180182
tag.dbId=linfo->lRelId.dbId;
181183
BlockIdCopy(&(tag.tupleId.ip_blkid),&(tidPtr->ip_blkid));
182-
return (MultiAcquire(MultiTableId,&tag,locktype,PAGE_LEVEL));
184+
return (MultiAcquire(MultiTableId,&tag,lockmode,PAGE_LEVEL));
183185
}
184186

185187
/*
@@ -189,12 +191,12 @@ MultiLockPage(LockInfo linfo, ItemPointer tidPtr, LOCKTYPE locktype)
189191
* Side Effects:
190192
*/
191193
staticbool
192-
MultiAcquire(LockTableIdtableId,
194+
MultiAcquire(LOCKMETHODlockmethod,
193195
LOCKTAG*tag,
194-
LOCKTYPElocktype,
196+
LOCKMODElockmode,
195197
PG_LOCK_LEVELlevel)
196198
{
197-
LOCKTYPElocks[N_LEVELS];
199+
LOCKMODElocks[N_LEVELS];
198200
inti,
199201
status;
200202
LOCKTAGxxTag,
@@ -213,19 +215,19 @@ MultiAcquire(LockTableId tableId,
213215
switch (level)
214216
{
215217
caseRELN_LEVEL:
216-
locks[0]=locktype;
218+
locks[0]=lockmode;
217219
locks[1]=NO_LOCK;
218220
locks[2]=NO_LOCK;
219221
break;
220222
casePAGE_LEVEL:
221-
locks[0]=locktype+INTENT;
222-
locks[1]=locktype;
223+
locks[0]=lockmode+INTENT;
224+
locks[1]=lockmode;
223225
locks[2]=NO_LOCK;
224226
break;
225227
caseTUPLE_LEVEL:
226-
locks[0]=locktype+INTENT;
227-
locks[1]=locktype+INTENT;
228-
locks[2]=locktype;
228+
locks[0]=lockmode+INTENT;
229+
locks[1]=lockmode+INTENT;
230+
locks[2]=lockmode;
229231
break;
230232
default:
231233
elog(ERROR,"MultiAcquire: bad lock level");
@@ -274,7 +276,7 @@ MultiAcquire(LockTableId tableId,
274276
break;
275277
}
276278

277-
status=LockAcquire(tableId,tmpTag,locks[i]);
279+
status=LockAcquire(lockmethod,tmpTag,locks[i]);
278280
if (!status)
279281
{
280282

@@ -285,7 +287,7 @@ MultiAcquire(LockTableId tableId,
285287
* the last level lock we successfully acquired
286288
*/
287289
retStatus= FALSE;
288-
MultiRelease(tableId,tag,locktype,i);
290+
MultiRelease(lockmethod,tag,lockmode,i);
289291
/* now leave the loop.Don't try for any more locks */
290292
break;
291293
}
@@ -300,7 +302,7 @@ MultiAcquire(LockTableId tableId,
300302
*/
301303
#ifdefNOT_USED
302304
bool
303-
MultiReleasePage(LockInfolinfo,ItemPointertidPtr,LOCKTYPElocktype)
305+
MultiReleasePage(LockInfolinfo,ItemPointertidPtr,LOCKMODElockmode)
304306
{
305307
LOCKTAGtag;
306308

@@ -316,7 +318,7 @@ MultiReleasePage(LockInfo linfo, ItemPointer tidPtr, LOCKTYPE locktype)
316318
tag.dbId=linfo->lRelId.dbId;
317319
BlockIdCopy(&(tag.tupleId.ip_blkid),&(tidPtr->ip_blkid));
318320

319-
return (MultiRelease(MultiTableId,&tag,locktype,PAGE_LEVEL));
321+
return (MultiRelease(MultiTableId,&tag,lockmode,PAGE_LEVEL));
320322
}
321323

322324
#endif
@@ -326,7 +328,7 @@ MultiReleasePage(LockInfo linfo, ItemPointer tidPtr, LOCKTYPE locktype)
326328
* ------------------
327329
*/
328330
bool
329-
MultiReleaseReln(LockInfolinfo,LOCKTYPElocktype)
331+
MultiReleaseReln(LockInfolinfo,LOCKMODElockmode)
330332
{
331333
LOCKTAGtag;
332334

@@ -340,7 +342,7 @@ MultiReleaseReln(LockInfo linfo, LOCKTYPE locktype)
340342
tag.relId=linfo->lRelId.relId;
341343
tag.dbId=linfo->lRelId.dbId;
342344

343-
return (MultiRelease(MultiTableId,&tag,locktype,RELN_LEVEL));
345+
return (MultiRelease(MultiTableId,&tag,lockmode,RELN_LEVEL));
344346
}
345347

346348
/*
@@ -349,12 +351,12 @@ MultiReleaseReln(LockInfo linfo, LOCKTYPE locktype)
349351
* Returns: TRUE if successful, FALSE otherwise.
350352
*/
351353
staticbool
352-
MultiRelease(LockTableIdtableId,
354+
MultiRelease(LOCKMETHODlockmethod,
353355
LOCKTAG*tag,
354-
LOCKTYPElocktype,
356+
LOCKMODElockmode,
355357
PG_LOCK_LEVELlevel)
356358
{
357-
LOCKTYPElocks[N_LEVELS];
359+
LOCKMODElocks[N_LEVELS];
358360
inti,
359361
status;
360362
LOCKTAGxxTag,
@@ -366,22 +368,22 @@ MultiRelease(LockTableId tableId,
366368
switch (level)
367369
{
368370
caseRELN_LEVEL:
369-
locks[0]=locktype;
371+
locks[0]=lockmode;
370372
locks[1]=NO_LOCK;
371373
locks[2]=NO_LOCK;
372374
break;
373375
casePAGE_LEVEL:
374-
locks[0]=locktype+INTENT;
375-
locks[1]=locktype;
376+
locks[0]=lockmode+INTENT;
377+
locks[1]=lockmode;
376378
locks[2]=NO_LOCK;
377379
break;
378380
caseTUPLE_LEVEL:
379-
locks[0]=locktype+INTENT;
380-
locks[1]=locktype+INTENT;
381-
locks[2]=locktype;
381+
locks[0]=lockmode+INTENT;
382+
locks[1]=lockmode+INTENT;
383+
locks[2]=lockmode;
382384
break;
383385
default:
384-
elog(ERROR,"MultiRelease: badlocktype");
386+
elog(ERROR,"MultiRelease: badlockmode");
385387
}
386388

387389
/*
@@ -423,7 +425,7 @@ MultiRelease(LockTableId tableId,
423425
ItemPointerCopy(&tmpTag->tupleId,&tag->tupleId);
424426
break;
425427
}
426-
status=LockRelease(tableId,tmpTag,locks[i]);
428+
status=LockRelease(lockmethod,tmpTag,locks[i]);
427429
if (!status)
428430
elog(ERROR,"MultiRelease: couldn't release after error");
429431
}

‎src/backend/storage/lmgr/proc.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.38 1998/06/27 15:47:46 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.39 1998/06/30 02:33:32 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -46,7 +46,7 @@
4646
*This is so that we can support more backends. (system-wide semaphore
4747
*sets run out pretty fast.) -ay 4/95
4848
*
49-
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.38 1998/06/27 15:47:46 momjian Exp $
49+
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.39 1998/06/30 02:33:32 momjian Exp $
5050
*/
5151
#include<sys/time.h>
5252
#include<unistd.h>
@@ -580,7 +580,7 @@ ProcWakeup(PROC *proc, int errType)
580580
*released.
581581
*/
582582
int
583-
ProcLockWakeup(PROC_QUEUE*queue,char*ltable,char*lock)
583+
ProcLockWakeup(PROC_QUEUE*queue,LOCKMETHODlockmethod,LOCK*lock)
584584
{
585585
PROC*proc;
586586
intcount;
@@ -590,8 +590,8 @@ ProcLockWakeup(PROC_QUEUE *queue, char *ltable, char *lock)
590590

591591
proc= (PROC*)MAKE_PTR(queue->links.prev);
592592
count=0;
593-
while ((LockResolveConflicts((LOCKTAB*)ltable,
594-
(LOCK*)lock,
593+
while ((LockResolveConflicts(lockmethod,
594+
lock,
595595
proc->token,
596596
proc->xid)==STATUS_OK))
597597
{
@@ -602,7 +602,7 @@ ProcLockWakeup(PROC_QUEUE *queue, char *ltable, char *lock)
602602
* between the time we release the lock master (spinlock) and the
603603
* time that the awoken process begins executing again.
604604
*/
605-
GrantLock((LOCK*)lock,proc->token);
605+
GrantLock(lock,proc->token);
606606
queue->size--;
607607

608608
/*

‎src/backend/storage/lmgr/single.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*
1414
*
1515
* IDENTIFICATION
16-
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/single.c,v 1.6 1998/06/28 21:17:35 momjian Exp $
16+
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/single.c,v 1.7 1998/06/30 02:33:32 momjian Exp $
1717
*
1818
*-------------------------------------------------------------------------
1919
*/
@@ -32,7 +32,7 @@
3232
* Returns: TRUE if the lock can be set, FALSE otherwise.
3333
*/
3434
bool
35-
SingleLockReln(LockInfolinfo,LOCKTYPElocktype,intaction)
35+
SingleLockReln(LockInfolinfo,LOCKMODElockmode,intaction)
3636
{
3737
LOCKTAGtag;
3838

@@ -47,9 +47,9 @@ SingleLockReln(LockInfo linfo, LOCKTYPE locktype, int action)
4747
tag.tupleId.ip_posid=InvalidOffsetNumber;
4848

4949
if (action==UNLOCK)
50-
return (LockRelease(MultiTableId,&tag,locktype));
50+
return (LockRelease(MultiTableId,&tag,lockmode));
5151
else
52-
return (LockAcquire(MultiTableId,&tag,locktype));
52+
return (LockAcquire(MultiTableId,&tag,lockmode));
5353
}
5454

5555
/*
@@ -63,7 +63,7 @@ SingleLockReln(LockInfo linfo, LOCKTYPE locktype, int action)
6363
bool
6464
SingleLockPage(LockInfolinfo,
6565
ItemPointertidPtr,
66-
LOCKTYPElocktype,
66+
LOCKMODElockmode,
6767
intaction)
6868
{
6969
LOCKTAGtag;
@@ -80,7 +80,7 @@ SingleLockPage(LockInfo linfo,
8080

8181

8282
if (action==UNLOCK)
83-
return (LockRelease(MultiTableId,&tag,locktype));
83+
return (LockRelease(MultiTableId,&tag,lockmode));
8484
else
85-
return (LockAcquire(MultiTableId,&tag,locktype));
85+
return (LockAcquire(MultiTableId,&tag,lockmode));
8686
}

‎src/include/storage/lmgr.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1994, Regents of the University of California
88
*
9-
* $Id: lmgr.h,v 1.11 1998/06/28 21:17:35 momjian Exp $
9+
* $Id: lmgr.h,v 1.12 1998/06/30 02:33:32 momjian Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -72,10 +72,10 @@ extern void RelationSetWIntentLock(Relation relation);
7272
externvoidRelationUnsetWIntentLock(Relationrelation);
7373

7474
/* single.c */
75-
externboolSingleLockReln(LockInfolinfo,LOCKTYPElocktype,intaction);
75+
externboolSingleLockReln(LockInfolinfo,LOCKMODElockmode,intaction);
7676
externbool
7777
SingleLockPage(LockInfolinfo,ItemPointertidPtr,
78-
LOCKTYPElocktype,intaction);
78+
LOCKMODElockmode,intaction);
7979

8080
/* proc.c */
8181
externvoidInitProcGlobal(IPCKeykey);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp