From 3812a3e497a69fc083ea88d10c05614319f350ec Mon Sep 17 00:00:00 2001 From: Maxim Orlov Date: Wed, 26 Feb 2025 11:17:50 +0300 Subject: [PATCH v0] =?UTF-8?q?Expect=20huge=20number=20of=20=E2=80=8B?= =?UTF-8?q?=E2=80=8Brequests=20in=20checkpointer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/postmaster/checkpointer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index 7acbbd3e26..17635bc018 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -1232,7 +1232,8 @@ CompactCheckpointerRequestQueue(void) return false; /* Initialize skip_slot array */ - skip_slot = palloc0(sizeof(bool) * CheckpointerShmem->num_requests); + skip_slot = palloc_extended(sizeof(bool) * CheckpointerShmem->num_requests, + MCXT_ALLOC_HUGE | MCXT_ALLOC_ZERO); /* Initialize temporary hash table */ ctl.keysize = sizeof(CheckpointerRequest); @@ -1343,8 +1344,11 @@ AbsorbSyncRequests(void) n = CheckpointerShmem->num_requests; if (n > 0) { - requests = (CheckpointerRequest *) palloc(n * sizeof(CheckpointerRequest)); - memcpy(requests, CheckpointerShmem->requests, n * sizeof(CheckpointerRequest)); + Size size; + + size = n * sizeof(CheckpointerRequest); + requests = palloc_extended(size, MCXT_ALLOC_HUGE); + memcpy(requests, CheckpointerShmem->requests, size); } START_CRIT_SECTION(); -- 2.43.0