[erlang-questions] Unicorn-style load balancing in Erlang?
Xiao Jia
stfairy@REDACTED
Wed Jan 2 17:09:43 CET 2013
>From http://www.erlang.org/doc/man/gen_tcp.html#accept-1:
> It is worth noting that the accept call does not have to be issued
> from the socket owner process. Using version 5.5.3 and higher of
> the emulator, multiple simultaneous accept calls can be issued
> from different processes, which allows for a pool of acceptor
> processes handling incoming connections.
Does it mean that we can have Unicorn-style load balancing in Erlang?
If so, are there any existing servers or libraries making use of this
feature?
For those who are not familiar with Unicorn [1], it is a traditional
UNIX prefork web server. Load balancing between worker processes is
done by the OS kernel. All workers share a common set of listener
sockets and does non-blocking accept() on them. The kernel will decide
which worker process to give a socket to and workers will sleep if
there is nothing to accept().
btw, I also posted this question on StackOverflow [2] but no active
responses there :-(
[1]: http://unicorn.bogomips.org/
[2]: http://stackoverflow.com/questions/14121987/unicorn-style-load-balancing-in-erlang
---
Regards,
Xiao Jia
More information about the erlang-questions
mailing list