Re: Patch to address creation of PgStat* contexts with null parent context - Mailing list pgsql-hackers

From Drouvot, Bertrand
Subject Re: Patch to address creation of PgStat* contexts with null parent context
Date
Msg-id 0010f0a6-136f-2504-5714-5f80a1c5b2a7@amazon.com
Whole thread Raw
In response to Re: Patch to address creation of PgStat* contexts with null parent context  (Andres Freund <andres@anarazel.de>)
Responses Re: Patch to address creation of PgStat* contexts with null parent context
List pgsql-hackers

Hi,

On 8/7/22 4:19 AM, Andres Freund wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Hi,

On 2022-08-05 17:22:38 +0900, Kyotaro Horiguchi wrote:
I think it a bit different.  Previously that memory (but for a bit
different use, precisely) was required only when stats data is read so
almost all server processes didn't need it.  Now, every server process
that uses pgstats requires the two memory if it is going to write
stats.  Even if that didn't happen until process termination, that
memory eventually required to flush possibly remaining data.  That
final write might be avoidable but I'm not sure it's worth the
trouble.  As the result, calling pgstat_initialize() is effectively
the declaration that the process requires the memory.
I don't think every process will end up calling pgstat_setup_memcxt() -
e.g. walsender, bgwriter, checkpointer probably don't? What do we gain by
creating the contexts eagerly?


Thus I thought that we may let pgstat_initialize() promptly allocate
the memory.
That makes some sense - but pgstat_attach_shmem() seems like a very strange
place for the call to CreateCacheMemoryContext().


I wonder if we shouldn't just use TopMemoryContext as the parent for most of
these contexts instead. CacheMemoryContext isn't actually a particularly good
fit anymore.

Could using TopMemoryContext like in the attach be an option? (aka changing CacheMemoryContext by TopMemoryContext in the 3 places of interest): that would ensure the 3 pgStat* contexts to have a non NULL parent context.

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachment

pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Clarify restriction on partitioned tables primary key / unique indexes
Next
From: Richard Guo
Date:
Subject: Re: [POC] Allow flattening of subquery with a link to upper query