Re: Reduce TupleHashEntryData struct size by half
Jeff Davis <pgsql@j-davis.com>
From: Jeff Davis <pgsql@j-davis.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers@postgresql.org
Date: 2025-01-13T22:11:18Z
Lists: pgsql-hackers
On Sun, 2025-01-12 at 14:54 +1300, David Rowley wrote: > While I do understand the desire to reduce Hash Agg's memory usage, > has this really been through enough performance testing to be getting > committed? Perhaps not. I'm going to revert it while we sort it out, and hopefully we can find a solution because it's a substantial memory savings. > I wonder if there's some other better way of doing this. Would it be > worth having some function like ExecCopySlotMinimalTuple() that > accepts an additional parameter so that the palloc allocates N more > bytes at the end? Maybe it's worth hunting around to see if there's > any other executor nodes that could benefit from that infrastructure. That would be convenient, but doesn't seem like a great separation of responsibilities. Perhaps some API that separated the length calculation, and accepted a caller-supplied buffer? Regards, Jeff Davis
Commits
-
Comment fixups from 626df47ad9.
- a0c7b765372d 18.0 landed
-
Remove 'additional' pointer from TupleHashEntryData.
- 626df47ad9db 18.0 cited
-
Add ExecCopySlotMinimalTupleExtra().
- a0942f441ed6 18.0 landed
-
Create accessor functions for TupleHashEntry.
- 4d143509cbfa 18.0 landed
-
TupleHashTable: store additional data along with tuple.
- e0ece2a981ee 18.0 landed
-
ExecInitAgg: update aggstate->numaggs and ->numtrans earlier.
- 3f482940dbcb 18.0 landed
-
nodeSetOp.c: missing additionalsize for BuildTupleHashTable().
- 32ddfaffd149 18.0 landed
-
Remove unused TupleHashTableData->entrysize.
- 8a96faedc408 18.0 landed
-
Add missing typedefs.list entry for AggStatePerGroupData.
- 834c9e807cf1 18.0 landed