Question about registry semantics

5 views
Skip to first unread message

Alexander V Vershilov

unread,
Feb 2, 2015, 3:39:25 PM2/2/15
to cloud-haskel...@googlegroups.com
Friends.

I want to create a follow-up thread of a previous big thread about
registering remote processes in local registry [1].
The conclusion that everybody seems to agree was that we
should follow "Unified Semantics for the Future Erlang" paper [2].
And basic notes were done in wiki [3].

Most of the features were done and submitted as a pull request [4].
However there is still grey are as implementation for registry is not
explicitly specified in paper [2].

So now main question is how node controller should clean registry?
If a Node controller receives DiedEvent then it removes process
occurrences from the registry (among the other things). Then if
died process was local node controller sends Died event to all nodes
that have processes that monitoring or linked to died process.
However if there is a remote process stored in local registry and
there are no monitors or links to that process on the node, then it
will never receive DiedEvent. Potentially this is a memory leak.

So my question will be what semantics do we want here and what
is the best way to implement it. I see two ways forward:
1. simple - do not introduce additional mechanisms and just
document current behaviour.
2. complex - introduce a mechanism for node-level monitoring, but
then I'm not sure what is the best way forward implementation-wise.

All thoughts and suggestions are weclome.


[1] https://groups.google.com/forum/#!topic/cloud-haskell-developers/120_WugguPg
[2] http://dl.acm.org/citation.cfm?id=1863509.1863514&coll=DL&dl=GUIDE
[3] http://haskell-distributed.github.io/wiki/development.html
[4] https://github.com/haskell-distributed/distributed-process/pull/178#issuecomment-72189254
--
Alexander
Reply all
Reply to author
Forward
0 new messages