For bare acceptor pool libraries, take a look at...<div><br></div><div><a href="https://github.com/extend/ranch">https://github.com/extend/ranch</a></div><div><a href="https://github.com/jeremey/swarm">https://github.com/jeremey/swarm</a></div>
<div><br></div><div>And I would bet that most significant socket server apps written in Erlang would use acceptor pooling of some sort.</div><div><br></div><div>Dan.<br><br><div class="gmail_quote">On Wed, Jan 2, 2013 at 10:09 AM, Xiao Jia <span dir="ltr"><<a href="mailto:stfairy@gmail.com" target="_blank">stfairy@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From <a href="http://www.erlang.org/doc/man/gen_tcp.html#accept-1" target="_blank">http://www.erlang.org/doc/man/gen_tcp.html#accept-1</a>:<br>

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