[erlang-questions] Best approach to creating a process/connection pool
Thu Aug 4 19:39:42 CEST 2011
Using OTP supervisor tree is intended only for control of restarting
application parts. If you want anything else you have to use links or
monitors unless you write your own supervisor which is not recommended
On Thu, Aug 4, 2011 at 6:35 PM, Andrew Berman <> wrote:
> Thanks Tim. So it looks like they are using erlang:monitor and
> demonitor, so is that the best approach in an OTP application? How
> does it figure into the supervision tree?
> On Thu, Aug 4, 2011 at 3:22 AM, Tim Watson <> wrote:
>> Take a look at the sources for http://zotonic.com/ as they use a
>> decent connection pool.
>> On 4 August 2011 08:01, Andrew Berman <> wrote:
>>> I'm fairly new to Erlang and I am trying to write a process pool which
>>> essentially is a connection pool to a database. I have designed the
>>> application like this: The main pool gen_server has a queue of PIDs
>>> of gen_fsm's. Each gen_fsm calls spawn_links a 3rd party gen_server and carries
>>> the state of the connection. So the 3rd party gen_server and the
>>> gen_fsm should always live and die together. I currently have set it
>>> up such that gen_fsm calls proc_lib:spawn_link() to start the 3rd
>>> party gen_server, but I'm wondering how this factors into the
>>> supervision tree. I currently have two supervisors:
>>> Sup1 -> one_for_all -> 2 children: pool gen_server and Sup2
>>> Sup2 -> simple_one_for_one -> 1 child: gen_fsm
>>> So my question is: is it ok to use spawn_link instead of somehow
>>> trying to put the 3rd party gen_server into the supervision tree? If
>>> it should go into the supervision tree, how would I organize the tree
>>> then such that the gen_fsm and 3rd party gen_server are reliant on
>>> each other?
>>> Thanks for any help!
>>> erlang-questions mailing list
> erlang-questions mailing list
--Hynek (Pichi) Vychodil
Analyze your data in minutes. Share your insights instantly. Thrill
your boss. Be a data hero!
Try GoodData now for free: www.gooddata.com
More information about the erlang-questions