]> granicus.if.org Git - postgresql/commit
Fix excessive memory consumption in the new sort pre-reading code.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 6 Oct 2016 06:46:40 +0000 (09:46 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 6 Oct 2016 06:46:40 +0000 (09:46 +0300)
commitb56fb691b0033f9b86e0552bd5adfd485f05eef6
tree06818b313e3c114faebaaf60697982b8894c1e36
parentbfe2e847811a4d0a46c8cdf16195c0e5929b6f83
Fix excessive memory consumption in the new sort pre-reading code.

LogicalTapeRewind() should not allocate large read buffer, if the tape
is completely empty. The calling code relies on that, for its
calculation of how much memory to allocate for the read buffers. That
lead to massive overallocation of memory, if maxTapes was high, but
only a few tapes were actually used.

Reported by Tomas Vondra

Discussion: <7303da46-daf7-9c68-3cc1-9f83235cf37e@2ndquadrant.com>
src/backend/utils/sort/logtape.c