3 ms·
Worth reading some critique about epoll as well: https://idea.popcount.org/2017-02-20-epoll-is-fundamentally-broken-12/ https://idea.popcount.org/2017-02-20-epo
by noncoml 3y ago
Worth reading some critique about epoll as well: https://idea.popcount.org/2017-02-20-epoll-is-fundamentally-broken-12/ https://idea.popcount.org/2017-02-20-epoll-is-fundamentally-...
Not to negate all the goodies that has given us
- JackSlateur 3y agoHe does not speak about SO_REUSEPORT (https://lwn.net/Articles/542629/ https://lwn.net/Articles/542629/) tldr: you create a bunch of processes, each of them creates its own socket (bound to the same local port) and processes requests. The kernel split incoming connections amongst the processes. The issue: "short" and "long" requests are managed in the same way, so one process could be overloaded by "long" requests. There is no feedback loop, as far as I know. Also, he does not speak about SCM_RIGHTS (https://man7.org/linux/man-pages/man7/unix.7.html https://man7.org/linux/man-pages/man7/unix.7.html), which may be replaced by the newer pidfd_getfd (https://man7.org/linux/man-pages/man2/pidfd_getfd.2.html https://man7.org/linux/man-pages/man2/pidfd_getfd.2.html) tldr: you can pass a file descriptor between processes. So an overloaded process could pass some work to another worker. Epoll is a great component, yet it will not give you billions of qps alone
- gpderetta 3y ago> He does not speak about SO_REUSEPORT (https://lwn.net/Articles/542629/ https://lwn.net/Articles/542629/) They do. Look for "Correct Solution" further down.