]> granicus.if.org Git - postgresql/commit
Improve memory management for external sorts.
authorRobert Haas <rhaas@postgresql.org>
Thu, 17 Mar 2016 20:05:05 +0000 (16:05 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 17 Mar 2016 20:10:41 +0000 (16:10 -0400)
commit0011c0091e886b874e485a46ff2c94222ffbf550
tree23effef05a3ef0331b305b0375da59492c6e57a0
parent55c3a04d60ccea9e999088fb847ceeb9fd4dd927
Improve memory management for external sorts.

Introduce a new memory context which stores tuple data, and reset it
at the end of each merge pass; this helps avoid memory fragmentation
and, consequently, overallocation.  Also, for the final merge patch,
eliminate memory context chunk header overhead entirely by allocating
all of the memory used for buffering tuples during the merge in a
single chunk.  Since this modestly increases the number of tuples we
can store, grow the memtuples array a bit so that we're less likely to
run short of slots there.

Peter Geoghegan.  Review and testing of patches in this series by
Jeff Janes, Greg Stark, Mithun Cy, and me.
src/backend/utils/sort/tuplesort.c