3 ms·
He 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 cr
by JackSlateur 3y ago
He 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.