v2-0006-Add-database-Oid-to-CkptSortItem.patch
text/x-patch
Filename: v2-0006-Add-database-Oid-to-CkptSortItem.patch
Type: text/x-patch
Part: 5
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 v2-0006
Subject: Add database Oid to CkptSortItem
| File | + | − |
|---|---|---|
| src/backend/storage/buffer/bufmgr.c | 8 | 0 |
| src/include/storage/buf_internals.h | 1 | 0 |
From 125c0ed4f690ad02ef9421bca45165d853b1de88 Mon Sep 17 00:00:00 2001
From: Melanie Plageman <melanieplageman@gmail.com>
Date: Tue, 2 Sep 2025 15:22:11 -0400
Subject: [PATCH v2 6/9] Add database Oid to CkptSortItem
This is useful for checkpointer write combining -- which will be added
in a future commit.
---
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 ade83adca59..5ab40a09960 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -3370,6 +3370,7 @@ BufferSync(int flags)
item = &CkptBufferIds[num_to_scan++];
item->buf_id = buf_id;
item->tsId = bufHdr->tag.spcOid;
+ item->db_id = bufHdr->tag.dbOid;
item->relNumber = BufTagGetRelNumber(&bufHdr->tag);
item->forkNum = BufTagGetForkNum(&bufHdr->tag);
item->blockNum = bufHdr->tag.blockNum;
@@ -6689,6 +6690,13 @@ ckpt_buforder_comparator(const CkptSortItem *a, const CkptSortItem *b)
return -1;
else if (a->tsId > b->tsId)
return 1;
+
+ /* compare database */
+ if (a->db_id < b->db_id)
+ return -1;
+ else if (a->db_id > b->db_id)
+ 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 d1f0ecb7ca4..291cc31da06 100644
--- a/src/include/storage/buf_internals.h
+++ b/src/include/storage/buf_internals.h
@@ -382,6 +382,7 @@ UnlockBufHdr(BufferDesc *desc, uint32 buf_state)
typedef struct CkptSortItem
{
Oid tsId;
+ Oid db_id;
RelFileNumber relNumber;
ForkNumber forkNum;
BlockNumber blockNum;
--
2.43.0