Hi, I’d like to ask how Caddy technically does syscalls (on Linux) and consequently about its behaviour on higher-latency systems, like network-mounted NFS or CephFS.
In https://blog.cloudflare.com/how-we-scaled-nginx-and-saved-the-world-54-years-every-day/, Cloudflare points out that in Nginx
read() syscalls can be put on thread pools (using
aio threads;) instead of happenning in the
epoll() event loop, such that a single slow
read() (e.g. blocking for 500 ms) cannot block other syscalls.
However, they also point out that Nginx cannot currently do it for
open(), which is a pain point. Cloudflare submitted an Nginx patch for that to be done in threads as well, but it was never merged upstream (last email here).
How does Caddy fare here? How is file system access implemented?