[erlang-questions] Fwd: Question about registry semantics for the remote processes.
Tim Watson
watson.timothy@REDACTED
Wed Jan 21 11:40:33 CET 2015
Can anyone shed any light on this??
On 14 January 2015 at 10:57, Alexander V Vershilov <
alexander.vershilov@REDACTED> wrote:
> Hello.
>
> I want to understand the reasons for the current semantics
> for saving remote processes in local registry.
>
> According to the specification for register function [1] it's
> impossible to save remote process in local registry:
>
> Failure: badarg if PidOrPort is not an existing,
> local process or port, if RegName is already in use,
> if the process or port is already registered (already has a name),
> or if RegName is the atom undefined.
>
> As a result it's not possible to construct expression Name ! Message,
> where Name is evaluated to a atom stored in registry that points
> to the remote process.
>
> Another approach is described in unified semantics paper (Section 2.3)
>
> However, for uniformity, in this semantics names can be registered
> for remote processes (i.e., register(name,pid) does not fail if pid
> is a remote process), and registering a local process at a remote
> node is supported too (using the operation register(node,name,pid)).
> As a consequence, when a message is sent to a remote node using the
> syntax
> {atom,node}!msg there is no guarantee that the process that should
> receive the mes-
> sage is located at node; thus it may be necessary to relay the message
> to a process on yet another node
>
> So I have two questions:
>
> 1. Were there any technical reasons for forbidding remote pids in local
> registry as we have in current erlang, or it's a historical reasons?
> 2. If there are technical reasons for that, then why uniformed
> specification
> introduces such behaviour, or it provides some mechanisms to solve
> those problems?
>
> One can argue that the reason is monitoring, and case when we are sending
> to the remote process from registry that already dead, but I don't see any
> difference with sending to remote Pid that already died, semantics of all
> the functions and guarantees are the same.
>
> Thanks
>
> [1] http://www.erlang.org/doc/man/erlang.html#register-2
> [2] http://happy-testing.com/hans/papers/EW2010-UnifiedSemantics.pdf
>
> --
> Alexander
> _______________________________________________
> 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/20150121/6311bfb4/attachment.htm>
More information about the erlang-questions
mailing list