• Heikki Linnakangas's avatar
    Pack tuples in a hash join batch densely, to save memory. · 45f6240a
    Heikki Linnakangas authored
    Instead of palloc'ing each HashJoinTuple individually, allocate 32kB chunks
    and pack the tuples densely in the chunks. This avoids the AllocChunk
    header overhead, and the space wasted by standard allocator's habit of
    rounding sizes up to the nearest power of two.
    
    This doesn't contain any planner changes, because the planner's estimate of
    memory usage ignores the palloc overhead. Now that the overhead is smaller,
    the planner's estimates are in fact more accurate.
    
    Tomas Vondra, reviewed by Robert Haas.
    45f6240a
hashjoin.h 7.96 KB