reducing_bgwriter_wakeups.v1.patch
text/x-diff
Filename: reducing_bgwriter_wakeups.v1.patch
Type: text/x-diff
Part: 0
Message:
Reducing bgwriter wakeups
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: unified
Series: patch v1
| File | + | − |
|---|---|---|
| src/backend/storage/buffer/bufmgr.c | 4 | 3 |
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 1adb6d3..310cd95 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -654,6 +654,10 @@ BufferAlloc(SMgrRelation smgr, char relpersistence, ForkNumber forkNum, FlushBuffer(buf, NULL); LWLockRelease(buf->content_lock); + /* The bgwriter may need to be woken. */ + if (ProcGlobal->bgwriterLatch) + SetLatch(ProcGlobal->bgwriterLatch); + TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_DONE(forkNum, blockNum, smgr->smgr_rnode.node.spcNode, smgr->smgr_rnode.node.dbNode, @@ -2368,9 +2372,6 @@ SetBufferCommitInfoNeedsSave(Buffer buffer) VacuumPageDirty++; if (VacuumCostActive) VacuumCostBalance += VacuumCostPageDirty; - /* The bgwriter may need to be woken. */ - if (ProcGlobal->bgwriterLatch) - SetLatch(ProcGlobal->bgwriterLatch); } } }