emulate target node names on a workstation
Ulf Wiger (AL/EAB)
Wed Dec 1 09:57:31 CET 2004
I just thought I'd mention that I sent a set of patches to OTP
(based on OTP R10B_0) that make it possible to run several
Erlang nodes on the same machine using the convention
'erl -sname <name>@<host>'.
This wasn't possible before, unless perhaps if the <name> part
happened to be unique for all nodes involved. My patch makes
epmd aware of the whole node name -- not just the first half.
I've attached an archive with a set of diffs (for epmd_srv.c,
epmd.h, epmd_int.h, net_kernel.erl, erl_epmd.[eh]rl,
inet_tcp_dist.erl). If anyone wants copies of the full source,
please email me.
Note that I've only dealt with the Erlang parts -- not C nodes
et al. Here's a chance to contribute. ;-)
AFAIK, the new epmd is backward compatible, but the <host> part
known to epmd will default to the original host name (this is
done since older erlang nodes don't pass the <host> part when
they register with epmd.)
Using this feature also requires a custom inetrc file. This
is all described in the ERTS User Guide.
(At AXD 301, we've used a mapping layer on top of the node names
to allow for them changing depending on environment. While there
may be some additional point to doing this, it has occured to me
that the Erlang node name is a logical abstraction in itself, and
should be sufficient in most cases. Using the node names directly
would cut down on the amount of glue code needed in the system.
Note, though, that we're not pushing this as a priority item. OTP
may choose to include it, or not. We don't care that much. I still
think it's a nice idea, though. Finally - fair warning: this was
my first "significant" c hack in 12-13 years -- absolutely no
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2888 bytes
Desc: not available
More information about the erlang-questions