On 1 November 2017 at 11:49, Andres Freund <and...@anarazel.de> wrote:
> Right. It'd probably be good to be a bit more adaptive here. But it's > hard to do with posix_fadvise - we'd need an operation that actually > notifies us of IO completion. If we were using, say, asynchronous > direct IO, we could initiate the request and regularly check how many > blocks ahead of the current window are already completed and adjust the > queue based on that, rather than jus tfiring off fadvises and hoping for > the best. In case it's of interest, I did some looking into using Linux's AIO support in Pg a while ago, when chasing some issues around fsync retries and handling of I/O errors. It was a pretty serious dead end; it was clear that fsync support in AIO is not only incomplete but inconsistent across kernel versions, let alone other platforms. But I see your name in the relevant threads, so you know that. To save others the time, see: * https://lwn.net/Articles/724198/ * https://lwn.net/Articles/671649/ -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers