Re: Make MemoryContextMemAllocated() more precise
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Tomas Vondra <tomas.vondra@postgresql.org>
Date: 2020-03-19T15:44:05Z
Lists: pgsql-hackers
On Mon, Mar 16, 2020 at 2:45 PM Jeff Davis <pgsql@j-davis.com> wrote: > Attached is a patch that makes mem_allocated a method (rather than a > field) of MemoryContext, and allows each memory context type to track > the memory its own way. They all do the same thing as before > (increment/decrement a field), but AllocSet also subtracts out the free > space in the current block. For Slab and Generation, we could do > something similar, but it's not as much of a problem because there's no > doubling of the allocation size. > > Although I think this still matches the word "allocation" in spirit, > it's not technically correct, so feel free to suggest a new name for > MemoryContextMemAllocated(). Procedurally, I think that it is highly inappropriate to submit a patch two weeks after the start of the final CommitFest and then commit it just over 48 hours later without a single endorsement of the change from anyone. Substantively, I think that whether or not this is improvement depends considerably on how your OS handles overcommit. I do not have enough knowledge to know whether it will be better in general, but would welcome opinions from others. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Create memory context for HashAgg with a reasonable maxBlockSize.
- 50a38f65177e 13.0 landed
-
Specialize MemoryContextMemAllocated().
- e00912e11a9e 13.0 landed