In Artanis, the request handling can be scheduled even when the socket buffer is full (depends on server.bufsize
). And let other handlers deal with the requests. Just like the scheduling of an OS, but in userland.
If you have issues with the buffer when scheduling, there’s no way to flush before it breaks, since we can’t tell if the scheduling is caused by the buffering or the blocking.
Ragnarok takes advantage of SO_REUSEPORT
introduced in GNU/Linux 3.9 to provide a feature named server.multi
which can be enabled in the config. This feature allows users to start several Artanis instances listening to the same port, to take advantage of multi core CPUs, and the Linux Kernel managing the events.
(to be continued …)