Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)

Поиск
Список
Период
Сортировка
От Gary Doades
Тема Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)
Дата
Msg-id 43F3BF72.6000202@gpdnet.co.uk
обсуждение исходный текст
Ответ на qsort again (was Re: [PERFORM] Strange Create Index behaviour)  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
Список pgsql-hackers
Tom Lane wrote:
> For some reason I hadn't immediately twigged to the fact that your test
> script is just N repetitions of the exact same structure with random data.
> So it's not so surprising that you get random variations in behavior
> with different test data sets.
>
  > It seems clear that our qsort.c is doing a pretty awful job of picking
> qsort pivots, while glibc is mostly managing not to make that mistake.
> I haven't looked at the glibc code yet to see what they are doing
> differently.
>
> I'd say this puts a considerable damper on my enthusiasm for using our
> qsort all the time, as was recently debated in this thread:
> http://archives.postgresql.org/pgsql-hackers/2005-12/msg00610.php
> We need to fix our qsort.c before pushing ahead with that idea.

[snip]

> Time: 28314.182 ms
> Time: 29400.278 ms
> Time: 34142.534 ms

Ouch! That confirms my problem. I generated the random test case because
it was easier than including the dump of my tables, but you can
appreciate that tables 20 times the size are basically crippled when it
comes to creating an index on them.

Examining the dump and the associated times during restore it looks like
I have 7 tables with this approximate distribution, thus the
ridiculously long restore time. Better not re-index soon!

Is this likely to hit me in a random fashion during normal operation,
joins, sorts, order by for example?

So the options are:
1) Fix the included qsort.c code and use that
2) Get FreeBSD to fix their qsort code
3) Both

I guess that 1 is the real solution in case anyone else's qsort is
broken in the same way. Then at least you *could* use it all the time :)

Regards,
Gary.




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: qsort again (was Re: [PERFORM] Strange Create Index behaviour)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: qsort again (was Re: [PERFORM] Strange Create Index behaviour)