[erlang-questions] start_child() on simple_one_for_one supervisor -> {error, {already_started, ...}} ???

Dominic Williams <>
Tue Dec 16 20:50:43 CET 2008


Hi mighty,

mighty a écrit :
> P.S. How scalable is registering processes? E.g., Is
> registering 64K processes not going to scale, as well as
> potentially impact others using registered names? It
> seems like there's a hash table for registered processes
> in register.c that starts off pretty small.

I don't know the answer to your question.

However, I do think that registering processes is not a 
particularly good idea in general, and is especially wrong 
in your case, when the processes will be created dynamically.

The only point of registering a process is to be able to 
call it later, by its name. This is bad enough (it's really 
like having a global variable, it's hell to test, etc).

If the names are dynamic, then that also defeats the 
purpose: you can't actually call dynamic names without 
having some sort of previous knowledge of which names have 
been created (in which case you might as well store the pids).

It is perfectly possible to create a gen_server without 
registering it.

Having it restarted by a supervisor is a bit more 
challenging (because the pid can change), but is still 
manageable in many cases.

Just a thought which seemed worth pointing out in your 
situation.

Regards,

Dominic Williams
http://dominicwilliams.net

----



More information about the erlang-questions mailing list