From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> |
Cc: | Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Add bump memory context type and use it for tuplesorts |
Date: | 2024-02-20 10:18:59 |
Message-ID: | CAApHDvrtoXSqD7sn6ECV6sePFsnJCj6vNfLA4KOBw9db9C7Skw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Thanks for taking an interest in this.
On Sat, 17 Feb 2024 at 11:46, Tomas Vondra
<tomas(dot)vondra(at)enterprisedb(dot)com> wrote:
> I wasn't paying much attention to these memcontext reworks in 2022, so
> my instinct was simply to use one of those "UNUSED" IDs. But after
> looking at the 80ef92675823 a bit more, are those IDs really unused? I
> mean, we're relying on those values to detect bogus pointers, right? So
> if we instead start using those values for a new memory context, won't
> we lose the ability to detect those issues?
I wouldn't say we're "relying" on them. Really there just there to
improve debugability. If we call any code that tries to look at the
MemoryChunk header of a malloc'd chunk, then we can expect bad things
to happen. We no longer have any code which does this.
MemoryContextContains() did, and it's now gone.
> Maybe I'm completely misunderstanding the implication of those limits,
> but doesn't this mean the claim that we can support 8 memory context
> types is not quite true, and the limit is 4, because the 4 IDs are
> already used for malloc stuff?
I think we all expected a bit more pain from the memory context
change. I was happy that Tom did the extra work to look at the malloc
patterns of glibc, but I think there's been very little gone wrong.
The reserved MemoryContextMethodIDs do seem to have allowed [1] to be
found, but I guess there'd have been a segfault instead of an ERROR
without the reserved IDs.
I've attached version 2, now split into 2 patches.
0001 for the bump allocator
0002 to use the new allocator for tuplesorts
David
[1] https://postgr.es/m/796b65c3-57b7-bddf-b0d5-a8afafb8b627@gmail.com
Attachment | Content-Type | Size |
---|---|---|
v3-0001-Introduce-a-bump-memory-allocator.patch | text/plain | 28.3 KB |
v3-0002-Use-bump-memory-context-for-tuplesorts.patch | text/plain | 10.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2024-02-20 10:21:12 | Re: table inheritance versus column compression and storage settings |
Previous Message | Hayato Kuroda (Fujitsu) | 2024-02-20 10:17:18 | RE: speed up a logical replica setup |