log_restartpoint_v1.patch
application/octet-stream
Filename: log_restartpoint_v1.patch
Type: application/octet-stream
Part: 0
Message:
log_checkpoints and restartpoint
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: context
Series: patch v1
| File | + | − |
|---|---|---|
| src/backend/access/transam/xlog.c | 14 | 0 |
*** a/src/backend/access/transam/xlog.c
--- b/src/backend/access/transam/xlog.c
***************
*** 7051,7060 **** LogCheckpointEnd(bool restartpoint)
--- 7051,7064 ----
if (restartpoint)
elog(LOG, "restartpoint complete: wrote %d buffers (%.1f%%); "
+ "%d transaction log file(s) added, %d removed, %d recycled; "
"write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; "
"sync files=%d, longest=%ld.%03d s, average=%ld.%03d s",
CheckpointStats.ckpt_bufs_written,
(double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers,
+ CheckpointStats.ckpt_segs_added,
+ CheckpointStats.ckpt_segs_removed,
+ CheckpointStats.ckpt_segs_recycled,
write_secs, write_usecs / 1000,
sync_secs, sync_usecs / 1000,
total_secs, total_usecs / 1000,
***************
*** 7681,7696 **** CreateRestartPoint(int flags)
SpinLockRelease(&xlogctl->info_lck);
LWLockRelease(WALInsertLock);
! if (log_checkpoints)
! {
! /*
! * Prepare to accumulate statistics.
! */
! MemSet(&CheckpointStats, 0, sizeof(CheckpointStats));
! CheckpointStats.ckpt_start_t = GetCurrentTimestamp();
LogCheckpointStart(flags, true);
- }
CheckPointGuts(lastCheckPoint.redo, flags);
--- 7685,7702 ----
SpinLockRelease(&xlogctl->info_lck);
LWLockRelease(WALInsertLock);
! /*
! * Prepare to accumulate statistics.
! *
! * Note: because it is possible for log_checkpoints to change while a
! * checkpoint proceeds, we always accumulate stats, even if
! * log_checkpoints is currently off.
! */
! MemSet(&CheckpointStats, 0, sizeof(CheckpointStats));
! CheckpointStats.ckpt_start_t = GetCurrentTimestamp();
+ if (log_checkpoints)
LogCheckpointStart(flags, true);
CheckPointGuts(lastCheckPoint.redo, flags);