Re: Memory-Bounded Hash Aggregation
Jeff Davis <pgsql@j-davis.com>
Attachments
- hashagg-20200226.patch (text/x-patch) patch
On Mon, 2020-02-24 at 15:29 -0800, Andres Freund wrote: > On 2020-02-22 11:02:16 -0800, Jeff Davis wrote: > > On Sat, 2020-02-22 at 10:00 -0800, Andres Freund wrote: > > > Both patches, or just 0013? Seems the earlier one might make the > > > addition of the opcodes you add less verbose? > > > > Just 0013, thank you. 0008 looks like it will simplify things. > > Pushed 0008. Rebased on your change. This simplified the JIT and interpretation code quite a bit. Also: * caching the compiled expressions so I can switch between the variants cheaply * added "Planned Partitions" to explain output * included tape buffers in the "Memory Used" output * Simplified the way I try to track memory usage and trigger spilling. * Reset hash tables always rather than rebuilding them from scratch. I will do another round of performance tests and see if anything changed from last time. Regards, Jeff Davis
Commits
-
Fix costing for disk-based hash aggregation.
- 7351bfeda33b 13.0 landed
-
Fixes for Disk-based Hash Aggregation.
- 64fe60227909 13.0 landed
-
Disk-based Hash Aggregation.
- 1f39bce02154 13.0 landed
-
Extend ExecBuildAggTrans() to support a NULL pointer check.
- c954d4904650 13.0 landed
-
Save calculated transitionSpace in Agg node.
- c11cb17dc55a 13.0 landed
-
Minor refactor of nodeAgg.c.
- 5b618e1f48ae 13.0 landed
-
Logical Tape Set: lazily allocate read buffer.
- 7fdd919ae755 13.0 landed
-
Introduce TupleHashTableHash() and LookupTupleHashEntryHash().
- 4eaea3db150a 13.0 landed
-
Logical Tape Set: use min heap for freelist.
- c02fdc922301 13.0 landed
-
Fix comments in execGrouping.c
- 30d47723fd15 13.0 landed
-
Avoid integer overflow while sifting-up a heap in tuplesort.c.
- 512f67c8d02c 10.0 cited
-
Make the overflow guards in ExecChooseHashTableSize be more protective.
- 8442317beb8f 9.0.0 cited
-
Improve performance of our private version of qsort. Per recent testing,
- a3f0b3d68f9a 8.2.0 cited