diff options
-rw-r--r-- | doc/src/sgml/monitoring.sgml | 4 | ||||
-rw-r--r-- | src/backend/access/heap/rewriteheap.c | 4 | ||||
-rw-r--r-- | src/backend/access/transam/xlog.c | 28 | ||||
-rw-r--r-- | src/backend/replication/logical/origin.c | 4 | ||||
-rw-r--r-- | src/backend/storage/lmgr/lwlocknames.txt | 2 |
5 files changed, 6 insertions, 36 deletions
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index f05140dd424..9496f76b1fb 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1881,10 +1881,6 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser pool.</entry> </row> <row> - <entry><literal>Checkpoint</literal></entry> - <entry>Waiting to begin a checkpoint.</entry> - </row> - <row> <entry><literal>CheckpointerComm</literal></entry> <entry>Waiting to manage fsync requests.</entry> </row> diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c index 29ffe406704..fcaad9ba0b7 100644 --- a/src/backend/access/heap/rewriteheap.c +++ b/src/backend/access/heap/rewriteheap.c @@ -1256,8 +1256,8 @@ CheckPointLogicalRewriteHeap(void) /* * The file cannot vanish due to concurrency since this function - * is the only one removing logical mappings and it's run while - * CheckpointLock is held exclusively. + * is the only one removing logical mappings and only one + * checkpoint can be in progress at a time. */ if (fd < 0) ereport(ERROR, diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 470e113b331..cc007b8963e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -430,10 +430,6 @@ static XLogRecPtr RedoStartLSN = InvalidXLogRecPtr; * ControlFileLock: must be held to read/update control file or create * new log file. * - * CheckpointLock: must be held to do a checkpoint or restartpoint (ensures - * only one checkpointer at a time; currently, with all checkpoints done by - * the checkpointer, this is just pro forma). - * *---------- */ @@ -8865,14 +8861,6 @@ CreateCheckPoint(int flags) InitXLogInsert(); /* - * Acquire CheckpointLock to ensure only one checkpoint happens at a time. - * (This is just pro forma, since in the present system structure there is - * only one process that is allowed to issue checkpoints at any given - * time.) - */ - LWLockAcquire(CheckpointLock, LW_EXCLUSIVE); - - /* * Prepare to accumulate statistics. * * Note: because it is possible for log_checkpoints to change while a @@ -8941,7 +8929,6 @@ CreateCheckPoint(int flags) if (last_important_lsn == ControlFile->checkPoint) { WALInsertLockRelease(); - LWLockRelease(CheckpointLock); END_CRIT_SECTION(); ereport(DEBUG1, (errmsg("checkpoint skipped because system is idle"))); @@ -9241,15 +9228,12 @@ CreateCheckPoint(int flags) CheckpointStats.ckpt_segs_added, CheckpointStats.ckpt_segs_removed, CheckpointStats.ckpt_segs_recycled); - - LWLockRelease(CheckpointLock); } /* * Mark the end of recovery in WAL though without running a full checkpoint. * We can expect that a restartpoint is likely to be in progress as we - * do this, though we are unwilling to wait for it to complete. So be - * careful to avoid taking the CheckpointLock anywhere here. + * do this, though we are unwilling to wait for it to complete. * * CreateRestartPoint() allows for the case where recovery may end before * the restartpoint completes so there is no concern of concurrent behaviour. @@ -9399,12 +9383,6 @@ CreateRestartPoint(int flags) XLogSegNo _logSegNo; TimestampTz xtime; - /* - * Acquire CheckpointLock to ensure only one restartpoint or checkpoint - * happens at a time. - */ - LWLockAcquire(CheckpointLock, LW_EXCLUSIVE); - /* Get a local copy of the last safe checkpoint record. */ SpinLockAcquire(&XLogCtl->info_lck); lastCheckPointRecPtr = XLogCtl->lastCheckPointRecPtr; @@ -9420,7 +9398,6 @@ CreateRestartPoint(int flags) { ereport(DEBUG2, (errmsg("skipping restartpoint, recovery has already ended"))); - LWLockRelease(CheckpointLock); return false; } @@ -9455,7 +9432,6 @@ CreateRestartPoint(int flags) UpdateControlFile(); LWLockRelease(ControlFileLock); } - LWLockRelease(CheckpointLock); return false; } @@ -9621,8 +9597,6 @@ CreateRestartPoint(int flags) xtime ? errdetail("Last completed transaction was at log time %s.", timestamptz_to_str(xtime)) : 0)); - LWLockRelease(CheckpointLock); - /* * Finally, execute archive_cleanup_command, if any. */ diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c index 77781d059dd..9bd761a4262 100644 --- a/src/backend/replication/logical/origin.c +++ b/src/backend/replication/logical/origin.c @@ -559,8 +559,8 @@ CheckPointReplicationOrigin(void) tmppath))); /* - * no other backend can perform this at the same time, we're protected by - * CheckpointLock. + * no other backend can perform this at the same time; only one + * checkpoint can happen at a time. */ tmpfd = OpenTransientFile(tmppath, O_CREAT | O_EXCL | O_WRONLY | PG_BINARY); diff --git a/src/backend/storage/lmgr/lwlocknames.txt b/src/backend/storage/lmgr/lwlocknames.txt index 774292fd942..6c7cf6c2956 100644 --- a/src/backend/storage/lmgr/lwlocknames.txt +++ b/src/backend/storage/lmgr/lwlocknames.txt @@ -15,7 +15,7 @@ SInvalWriteLock 6 WALBufMappingLock 7 WALWriteLock 8 ControlFileLock 9 -CheckpointLock 10 +# 10 was CheckpointLock XactSLRULock 11 SubtransSLRULock 12 MultiXactGenLock 13 |