On 12/2/07, Gregory Stark <[EMAIL PROTECTED]> wrote: > > The two interfaces I'm aware of for this are posix_fadvise() and libaio. I've > run tests with a synthetic benchmark which generates a large file then reads a > random selection of blocks from within it using either synchronous reads like > we do now or either of those interfaces. I saw impressive speed gains on a > machine with only three drives in a raid array. I did this a while ago so I > don't have the results handy. I'll rerun the tests again and post them.
The issue I've always seen raised with asynchronous I/O is portability--apparently some platforms PG runs on don't support it (or not well). AIUI Linux actually still has a fairly crappy implementation of AIO--glibc starts threads to do the I/O and then tracks when they finish. Not absolutely horrible, but a nice way to suddenly have a threaded backend when you're not expecting one. -Doug ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings