[erlang-questions] Idea for deprecating EPMD

Serge Aleynikov serge@REDACTED
Wed Dec 9 17:36:38 CET 2015


A good thing about the legacy epmd is that it's slim, and it can be
supervised separately from Erlang VM (e.g. systemd).  I am not so sure that
the C language choice for the current epmd is bad.  The implementation is
simple, and does well, unless you are running in limitations of a specific
OS (such as RTEMS) that require to have an embedded epmd. Running an
epmd-like replacement in Erlang in a general case could be tricky when
running multiple nodes on the same host as now the epmd would be dependent
on a single node's availability, and actually the whole epmd protocol might
need to be revised.

Rather than replacing epmd, I would be much more interested in extending
the epmd functionality to handle:

1. Auto-discovery of running local nodes in case of epmd restarts.
2. Support of multiple distribution transport protocols for one node (*)

I would love to see some progress on #2, as it's a very big limitation that
presently a node is limited to a single distributed transport.

Regards,
Serge

(*) Previously I gave a shot at extending epmd and distribution to support
SSL, TCP, Unix Domain Sockets, and other transports, but given the scope of
impact that patch was rejected by the OTP team.
https://github.com/erlang/otp/pull/121
http://erlang.org/pipermail/erlang-patches/2014-January/004522.html


On Tue, Dec 8, 2015 at 6:57 PM, Geoff Cant <nem@REDACTED> wrote:

> Hi all, I find EPMD to be a regular frustration when deploying and
> operating Erlang systems. EPMD is a separate service that needs to be
> running for Erlang distribution to work properly, and usually (in systems
> that don’t use distribution for their main function) it's not set up right,
> and you only notice in production because the only time you use for
> distribution is to get a remote shell (over localhost). (Maybe I’m just bad
> at doing this, but I do it a lot)
>
> Erlang node names already encode host information —
>descriptive_name@REDACTED’. If we include the erlang distribution listen
> port too, that would remove the need for EPMD. For example:
>descriptive_name@REDACTED:distribution_port’. Node names using this
> scheme would skip the EPMD step, otherwise erlang distribution would fall
> back to the current system.
>
>
> My questions for the list are:
> * Are you annoyed by epmd too?
> * Do you think this idea is worth me writing up into an EEP or writing a
> pull request?
> * Do you think this idea is unworkable for some reason I’m overlooking?
>
> Thanks,
> -Geoff
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20151209/b217d1a6/attachment.htm>


More information about the erlang-questions mailing list