From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
Cc: | Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Reducing Memory Consumption (aset and generation) |
Date: | 2022-06-06 23:36:55 |
Message-ID: | CAApHDvooEmcEvR4rhiTd8Fm14HTY4zzuNisCVxe3_bpH50_vUg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, 6 Jun 2022 at 07:28, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
> 4) 004-generation-reduces-memory-consumption-BUG.patch
> Same to the (2), but with BUG.
> It only takes a few tweaks to completely remove the field block.
> This fails with make check.
> I couldn't figure out why it doesn't work with 16 bits (struct GenerationChunk).
I think you're misunderstanding how blocks and chunks work here. A
block can have many chunks. You can't find the block that a chunk is
on by subtracting Generation_BLOCKHDRSZ from the pointer given to
GenerationFree(). That would only work if the chunk happened to be the
first chunk on a block. If it's anything apart from that then you'll
be making adjustments to the memory of some prior chunk on the block.
I imagine this is the reason you can't get the tests to pass.
Can you also explain why you think moving code around randomly or
adding unlikely() macros helps reduce the memory consumption overheads
of generation contexts? I imagine you think that's helping to further
improve performance, but you've not offered any evidence of that
separately from the other changes you've made. If you think those are
useful changes then I recommend you run individual benchmarks and
offer those as proof that those changes are worthwhile.
David
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2022-06-06 23:41:02 | Re: pg_auth_members.grantor is bunk |
Previous Message | Michael Paquier | 2022-06-06 23:30:47 | Re: [v15 beta] pg_upgrade failed if earlier executed with -c switch |