Re: Async I/O

Started by Bruce Momjianabout 28 years ago1 messageshackers
Jump to latest
#1Bruce Momjian
bruce@momjian.us

I'm sure you've probably thought about this (and discarded it for
a variety of reasons), but here it goes anyway:

Have some daemon ("postmaster" itself, perhaps) service requests for
pages asynchronously. For example, have each "postgres" client request
the pages from "postmaster" and continue running; "postmaster" could
service the request, map the resulting pages into the shared segment, and
notify the appropriate "postgres" client (either through the socket
or some other way) asynchronously. The "postgres" client could then
be checking the socket with a non-blocking select whenever it wanted to.
(Or you could notify the client with a signal telling it that the request
has been serviced and it can go and get the pages.)

It's just a suggestion. Good luck and congratulations for the excellent
work you've done with postgresql.

-Ted.

p.s. I've got a table that's 77 MB (340,000 records), with six indexes on
it totaling another 66 MB. It does pretty well, actually.

Above is a very good review of a platform-independent way for us to do
async read-aheads, particularly for heap reads from indexes. I think it
deserves consideration as a good way to perform what we need done.

Shared memory certainly gives us a way to communicate between these
processes.

-- 
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)