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

Commit18691d8

Browse files
committed
Clean up representation of SLRU page state. This is the cleaner fix
for the SLRU race condition that I posted a few days ago, but we decidednot to use in 8.1 and older branches.
1 parent667ba8c commit18691d8

File tree

5 files changed

+158
-149
lines changed

5 files changed

+158
-149
lines changed

‎src/backend/access/transam/clog.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
2525
* Portions Copyright (c) 1994, Regents of the University of California
2626
*
27-
* $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.33 2005/10/15 02:49:09 momjian Exp $
27+
* $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.34 2005/11/05 21:19:47 tgl Exp $
2828
*
2929
*-------------------------------------------------------------------------
3030
*/
@@ -107,7 +107,7 @@ TransactionIdSetStatus(TransactionId xid, XidStatus status)
107107
byteval |= (status <<bshift);
108108
*byteptr=byteval;
109109

110-
ClogCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
110+
ClogCtl->shared->page_dirty[slotno]=true;
111111

112112
LWLockRelease(CLogControlLock);
113113
}
@@ -175,7 +175,7 @@ BootStrapCLOG(void)
175175

176176
/* Make sure it's written out */
177177
SimpleLruWritePage(ClogCtl,slotno,NULL);
178-
Assert(ClogCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
178+
Assert(!ClogCtl->shared->page_dirty[slotno]);
179179

180180
LWLockRelease(CLogControlLock);
181181
}
@@ -246,7 +246,7 @@ StartupCLOG(void)
246246
/* Zero the rest of the page */
247247
MemSet(byteptr+1,0,BLCKSZ-byteno-1);
248248

249-
ClogCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
249+
ClogCtl->shared->page_dirty[slotno]=true;
250250
}
251251

252252
LWLockRelease(CLogControlLock);
@@ -404,7 +404,7 @@ clog_redo(XLogRecPtr lsn, XLogRecord *record)
404404

405405
slotno=ZeroCLOGPage(pageno, false);
406406
SimpleLruWritePage(ClogCtl,slotno,NULL);
407-
Assert(ClogCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
407+
Assert(!ClogCtl->shared->page_dirty[slotno]);
408408

409409
LWLockRelease(CLogControlLock);
410410
}

‎src/backend/access/transam/multixact.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
4343
* Portions Copyright (c) 1994, Regents of the University of California
4444
*
45-
* $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.11 2005/10/28 19:00:19 tgl Exp $
45+
* $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.12 2005/11/05 21:19:47 tgl Exp $
4646
*
4747
*-------------------------------------------------------------------------
4848
*/
@@ -714,7 +714,7 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset,
714714

715715
*offptr=offset;
716716

717-
MultiXactOffsetCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
717+
MultiXactOffsetCtl->shared->page_dirty[slotno]=true;
718718

719719
/* Exchange our lock */
720720
LWLockRelease(MultiXactOffsetControlLock);
@@ -742,7 +742,7 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset,
742742

743743
*memberptr=xids[i];
744744

745-
MultiXactMemberCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
745+
MultiXactMemberCtl->shared->page_dirty[slotno]=true;
746746
}
747747

748748
LWLockRelease(MultiXactMemberControlLock);
@@ -1308,7 +1308,7 @@ BootStrapMultiXact(void)
13081308

13091309
/* Make sure it's written out */
13101310
SimpleLruWritePage(MultiXactOffsetCtl,slotno,NULL);
1311-
Assert(MultiXactOffsetCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
1311+
Assert(!MultiXactOffsetCtl->shared->page_dirty[slotno]);
13121312

13131313
LWLockRelease(MultiXactOffsetControlLock);
13141314

@@ -1319,7 +1319,7 @@ BootStrapMultiXact(void)
13191319

13201320
/* Make sure it's written out */
13211321
SimpleLruWritePage(MultiXactMemberCtl,slotno,NULL);
1322-
Assert(MultiXactMemberCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
1322+
Assert(!MultiXactMemberCtl->shared->page_dirty[slotno]);
13231323

13241324
LWLockRelease(MultiXactMemberControlLock);
13251325
}
@@ -1405,7 +1405,7 @@ StartupMultiXact(void)
14051405

14061406
MemSet(offptr,0,BLCKSZ- (entryno*sizeof(MultiXactOffset)));
14071407

1408-
MultiXactOffsetCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
1408+
MultiXactOffsetCtl->shared->page_dirty[slotno]=true;
14091409
}
14101410

14111411
LWLockRelease(MultiXactOffsetControlLock);
@@ -1435,7 +1435,7 @@ StartupMultiXact(void)
14351435

14361436
MemSet(xidptr,0,BLCKSZ- (entryno*sizeof(TransactionId)));
14371437

1438-
MultiXactMemberCtl->shared->page_status[slotno]=SLRU_PAGE_DIRTY;
1438+
MultiXactMemberCtl->shared->page_dirty[slotno]=true;
14391439
}
14401440

14411441
LWLockRelease(MultiXactMemberControlLock);
@@ -1829,7 +1829,7 @@ multixact_redo(XLogRecPtr lsn, XLogRecord *record)
18291829

18301830
slotno=ZeroMultiXactOffsetPage(pageno, false);
18311831
SimpleLruWritePage(MultiXactOffsetCtl,slotno,NULL);
1832-
Assert(MultiXactOffsetCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
1832+
Assert(!MultiXactOffsetCtl->shared->page_dirty[slotno]);
18331833

18341834
LWLockRelease(MultiXactOffsetControlLock);
18351835
}
@@ -1844,7 +1844,7 @@ multixact_redo(XLogRecPtr lsn, XLogRecord *record)
18441844

18451845
slotno=ZeroMultiXactMemberPage(pageno, false);
18461846
SimpleLruWritePage(MultiXactMemberCtl,slotno,NULL);
1847-
Assert(MultiXactMemberCtl->shared->page_status[slotno]==SLRU_PAGE_CLEAN);
1847+
Assert(!MultiXactMemberCtl->shared->page_dirty[slotno]);
18481848

18491849
LWLockRelease(MultiXactMemberControlLock);
18501850
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp