postgresql/src
Tom Lane 43ceb3d449 Further examination of ltsReleaseBlock usage shows that it's got a
performance issue during regular merge passes not only the 'final merge'
case.  The original design contemplated that there would never be more
than about one free block per 'tape', hence no need for an efficient
method of keeping the free blocks sorted.  But given the later addition
of merge preread behavior in tuplesort.c, there is likely to be about
work_mem worth of free blocks, which is not so small ... and for that
matter the number of tapes isn't necessarily small anymore either.  So
we'd better get rid of the assumption entirely.  Instead, I'm assuming
that the usage pattern will involve alternation between merge preread
and writing of a new run.  This makes it reasonable to just add blocks
to the list without sorting during successive ltsReleaseBlock calls,
and then do a qsort() when we start getting ltsGetFreeBlock() calls.
Experimentation seems to confirm that there aren't many qsort calls
relative to the number of ltsReleaseBlock/ltsGetFreeBlock calls.
2006-03-07 23:46:24 +00:00
..
backend Further examination of ltsReleaseBlock usage shows that it's got a 2006-03-07 23:46:24 +00:00
bin Enable standard_conforming_strings to be turned on. 2006-03-06 19:49:20 +00:00
include Repair old performance bug in tuplesort.c/logtape.c. In the case where 2006-03-07 19:06:50 +00:00
interfaces Remove the stub support we had for UNION JOIN; per discussion, this is 2006-03-07 01:00:19 +00:00
makefiles Remove ancient hack to work around a peculiarity of libcurses on HPUX. 2006-02-07 17:36:13 +00:00
pl Make all our flex and bison files use %option prefix or %name-prefix 2006-03-07 01:03:12 +00:00
port Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
template Update tested AIX memset platforms. 2006-02-03 13:56:20 +00:00
test Remove the stub support we had for UNION JOIN; per discussion, this is 2006-03-07 01:00:19 +00:00
timezone Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
tools Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
tutorial Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
utils Allow installation into directories containing spaces in the name. 2005-12-09 21:19:36 +00:00
bcc32.mak Add -N make flag to bcc builds from /src dir. 2005-05-13 18:12:35 +00:00
DEVELOPERS
Makefile Update Makefile for new thread_test location. 2006-02-04 01:04:20 +00:00
Makefile.global.in When performing a parallel build (make -j N) with ./configure 2006-02-12 07:29:36 +00:00
Makefile.shlib Remove BEOS port. 2006-01-05 03:01:38 +00:00
nls-global.mk Allow installation into directories containing spaces in the name. 2005-12-09 21:19:36 +00:00
win32.mak Fixes for Win32-client only compiles. 2006-03-03 23:11:48 +00:00