3 ms·
> fully async disk I/O I thought Linux didn't support real async disk IO. Is that not the case? If Linux has no real async disk IO, how does Dqlite achieve fu
by continuations 7y ago
> fully async disk I/O
I thought Linux didn't support real async disk IO. Is that not the case?
If Linux has no real async disk IO, how does Dqlite achieve fully async disk IO?
- rrdharan 7y agoLinux does support async I/O to disks using various other interfaces/approaches - it’s just that the classic approach of select()’ing on non-blocking FDs doesn’t work for disk: https://blog.cloudflare.com/io_submit-the-epoll-alternative-youve-never-heard-about/ https://blog.cloudflare.com/io_submit-the-epoll-alternative-...
- brennebeck 7y agohttps://github.com/canonical/dqlite/blob/master/doc/faq.md#are-windows-and-osx-supported https://github.com/canonical/dqlite/blob/master/doc/faq.md#a... http://man7.org/linux/man-pages/man2/io_submit.2.html http://man7.org/linux/man-pages/man2/io_submit.2.html
- free-ekanayaka 7y agoThe support of async disk I/O in Linux differs depending on kernel version and file system type. But it is possible to get 100% async I/O with the is_submit(), and dqlite will leverage that if detected. There is now a new async I/O API available in Linux (I'm not remembering the name right now, but it was developed by folks at Facebook). It looks promising so I'll check it at some point. (dqlite author here)
- brauner 7y agoJens Axboe, io_uring :)