v7-0005-Add-database-Oid-to-CkptSortItem.patch
text/x-patch
Filename: v7-0005-Add-database-Oid-to-CkptSortItem.patch
Type: text/x-patch
Part: 4
Message:
Re: Checkpointer write combining
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: format-patch
Series: patch v7-0005
Subject: Add database Oid to CkptSortItem
| File | + | − |
|---|---|---|
| src/backend/storage/buffer/bufmgr.c | 8 | 0 |
| src/include/storage/buf_internals.h | 1 | 0 |
From 7a48e402ebabc76bcead5ffd8db1f62720cc1704 Mon Sep 17 00:00:00 2001
From: Melanie Plageman <melanieplageman@gmail.com>
Date: Tue, 2 Sep 2025 15:22:11 -0400
Subject: [PATCH v7 5/7] Add database Oid to CkptSortItem
This is useful for checkpointer write combining -- which will be added
in a future commit.
Author: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/2FA0BAC7-5413-4ABD-94CA-4398FE77750D%40gmail.com
---
src/backend/storage/buffer/bufmgr.c | 8 ++++++++
src/include/storage/buf_internals.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 3c49c8c2ef2..0ee7feba7ba 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -3413,6 +3413,7 @@ BufferSync(int flags)
item = &CkptBufferIds[num_to_scan++];
item->buf_id = buf_id;
item->tsId = bufHdr->tag.spcOid;
+ item->dbId = bufHdr->tag.dbOid;
item->relNumber = BufTagGetRelNumber(&bufHdr->tag);
item->forkNum = BufTagGetForkNum(&bufHdr->tag);
item->blockNum = bufHdr->tag.blockNum;
@@ -6812,6 +6813,13 @@ ckpt_buforder_comparator(const CkptSortItem *a, const CkptSortItem *b)
return -1;
else if (a->tsId > b->tsId)
return 1;
+
+ /* compare database */
+ if (a->dbId < b->dbId)
+ return -1;
+ else if (a->dbId > b->dbId)
+ return 1;
+
/* compare relation */
if (a->relNumber < b->relNumber)
return -1;
diff --git a/src/include/storage/buf_internals.h b/src/include/storage/buf_internals.h
index 337f1427bbc..a0051780a13 100644
--- a/src/include/storage/buf_internals.h
+++ b/src/include/storage/buf_internals.h
@@ -384,6 +384,7 @@ extern uint32 WaitBufHdrUnlocked(BufferDesc *buf);
typedef struct CkptSortItem
{
Oid tsId;
+ Oid dbId;
RelFileNumber relNumber;
ForkNumber forkNum;
BlockNumber blockNum;
--
2.43.0