Re: Strange Create Index behaviour - Mailing list pgsql-performance

From Tom Lane
Subject Re: Strange Create Index behaviour
Date
Msg-id 19779.1140038874@sss.pgh.pa.us
Whole thread Raw
In response to Re: Strange Create Index behaviour  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Strange Create Index behaviour  (Gary Doades <gpd@gpdnet.co.uk>)
Re: Strange Create Index behaviour  (Gary Doades <gpd@gpdnet.co.uk>)
List pgsql-performance
I wrote:
> Interesting.  I tried your test script and got fairly close times
> for all the cases on two different machines:
>     old HPUX machine: shortest 5800 msec, longest 7960 msec
>     new Fedora 4 machine: shortest 461 msec, longest 608 msec

> So what this looks like to me is a corner case that FreeBSD's qsort
> fails to handle well.

I tried forcing PG to use src/port/qsort.c on the Fedora machine,
and lo and behold:
    new Fedora 4 machine: shortest 434 msec, longest 8530 msec

So it sure looks like this script does expose a problem on BSD-derived
qsorts.  Curiously, the case that's much the worst for me is the third
in the script, while the shortest time is the first case, which was slow
for Gary.  So I'd venture that the *BSD code has been tweaked somewhere
along the way, in a manner that moves the problem around without really
fixing it.  (Anyone want to compare the actual FreeBSD source to what
we have?)

This is pretty relevant stuff, because there was a thread recently
advocating that we stop using the platform qsort on all platforms:
http://archives.postgresql.org/pgsql-hackers/2005-12/msg00610.php

It's really interesting to see a case where port/qsort is radically
worse than other qsorts ... unless we figure that out and fix it,
I think the idea of using port/qsort everywhere has just taken a
major hit.

            regards, tom lane

pgsql-performance by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Strange Create Index behaviour
Next
From: "Jay Greenfield"
Date:
Subject: Re: Postgres slower than MS ACCESS