From: Tom Lane on
Daniel Ng <danielng1985(a)gmail.com> writes:
> I am trying to enable the direct IO for the disk-resident
> hash partitions of hashjoin in postgresql.

Why would you think that's a good idea?

> Can anyone advise what's the reason and how to fix this?

Per the open(2) man page:

The O_DIRECT flag may impose alignment restrictions on the length and
address of userspace buffers and the file offset of I/Os. In Linux
alignment restrictions vary by file system and kernel version and might
be absent entirely. However there is currently no file system-indepen-
dent interface for an application to discover these restrictions for a
given file or file system.

It's unlikely that the code you're hacking makes any attempt to align
the buffers it's using to read/write files.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Greg Smith on
Daniel Ng wrote:
> I am trying to enable the direct IO for the disk-resident
> hash partitions of hashjoin in postgresql.

As Tom already mentioned this isn't working because of alignment
issues. I'm not sure what you expect to achieve though. You should be
warned that other than the WAL, every experiment I've ever seen that
tries to add more direct I/O to the database has failed to improve
anything; the result is neither barely noticeable, or a major
performance drop. This is particularly futile if you're doing your
research on Linux/ext3, where even if your code works delivers a speed
up no one will trust it enough to ever merge and deploy it, due to the
generally poor quality of that area of the kernel so far.

This particular area is magnetic for drawing developer attention as it
seems like there's a big win just under the surface if things were
improved a bit. There isn't. On operating systems like Solaris where
it's possible to prototype here by use mounting options to silently
covert parts of the database to direct I/O, experiments in that area
have all been disappointing. One of the presentations from Jignesh Shah
at Sun covered his experiments in this area, can't seem to find it at
the moment but I remember the results were not positive in any way.

--
Greg Smith 2ndQuadrant US Baltimore, MD
PostgreSQL Training, Services and Support
greg(a)2ndQuadrant.com www.2ndQuadrant.us


--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Daniel Ng on
Greg: Thank you very much for your insightful comments on the performance of

direct io applied to postgres! That inspired me a lot.

Tom: thank you for the reference to man page!

On Fri, Jun 18, 2010 at 2:02 AM, Greg Smith <greg(a)2ndquadrant.com> wrote:

> Daniel Ng wrote:
>
>> I am trying to enable the direct IO for the disk-resident
>> hash partitions of hashjoin in postgresql.
>>
>
> As Tom already mentioned this isn't working because of alignment issues.
> I'm not sure what you expect to achieve though. You should be warned that
> other than the WAL, every experiment I've ever seen that tries to add more
> direct I/O to the database has failed to improve anything; the result is
> neither barely noticeable, or a major performance drop. This is
> particularly futile if you're doing your research on Linux/ext3, where even
> if your code works delivers a speed up no one will trust it enough to ever
> merge and deploy it, due to the generally poor quality of that area of the
> kernel so far.
>
> This particular area is magnetic for drawing developer attention as it
> seems like there's a big win just under the surface if things were improved
> a bit. There isn't. On operating systems like Solaris where it's possible
> to prototype here by use mounting options to silently covert parts of the
> database to direct I/O, experiments in that area have all been
> disappointing. One of the presentations from Jignesh Shah at Sun covered
> his experiments in this area, can't seem to find it at the moment but I
> remember the results were not positive in any way.
>
> --
> Greg Smith 2ndQuadrant US Baltimore, MD
> PostgreSQL Training, Services and Support
> greg(a)2ndQuadrant.com www.2ndQuadrant.us
>
>