Asynchronous I/O Support
От | Raja Agrawal |
---|---|
Тема | Asynchronous I/O Support |
Дата | |
Msg-id | 14006f560610141549m20c28d96qc023c0a84a12fdff@mail.gmail.com обсуждение исходный текст |
Список | pgsql-patches |
Postgre8.1 doesn't seem to support asynchronous I/O. Has its design been thought off already? To tried doing with a simple example: For a Index Nest loop join: Fetch the outer tuples in an array, and then send all the corresponding inner-tuple fetch requests asynchronously. Hence while the IO is done for inner relation the new outer-tuple array can be populated and other join operations can happen. This is maximum overlap we could think of (doing minimal changes). [The current implementation does sync IO, that is it fetches a outer tuple, then requests corresponding inner tuple (waits till it gets), does the processing, get another inner/outer tuple and so on.] We have made appropriate changes in nodeNestloop.c but are unable to track down how it issues the IO and gets the tuple in the slot. Help! -- how to issue a async IO (given kernel 2.6 supports AIO), and does a callback sceme or a sync IO on top of AIO, which of these will be best? Also, as Graefe's paper suggests, a producer-consumer (thread-based) is the best way to do this. But how to implement threading? (in case its possible to?) Sincere regards, Raja Agrawal
В списке pgsql-patches по дате отправления: