[erlang-questions] is there anything wrong with global?

Christopher Meiklejohn christopher.meiklejohn@REDACTED
Thu Nov 17 10:39:50 CET 2016

On Sun, Dec 28, 2014 at 10:05 PM, Michael Truog <mjtruog@REDACTED> wrote:
> On 12/28/2014 11:39 AM, Sean Cribbs wrote:
> Global registration is inherently a consensus problem, and thus will have
> problems with liveness, as you've discovered. I can't speak to the
> implementation of the 'global' module, but I would suspect it is not
> partition-tolerant. Is there a way you can reconfigure your application to
> have locally-registered processes (one-per-node), or not require a single
> distribution point?
> There is also some work done by my colleague Chris Meiklejohn for
> eventually-consistent (and partition-tolerant) process groups, if you don't
> require a single authoritative process:
> https://github.com/cmeiklejohn/riak_pg
> If you need something that has already been in production, you need not look
> further than Erlang/OTP with http://www.erlang.org/doc/man/pg2.html .  There
> also is https://github.com/okeuday/cpg/ which has more features without ets
> usage to avoid contention (and it supports the via syntax, if you need that
> (i.e., {via,Module,ViaName})).
> On Sat, Dec 27, 2014 at 5:36 AM, 289602744 <289602744@REDACTED> wrote:
>> These days,I found global did not work well.
>> I have hundreds of nodes,and these nodes are connected with each other.
>> But on some nodes, I can't get a process's global registered name with
>> global:whereis_name, althrough I can get the node info by
>> net_kernel:node_info/1
>> I didnot find a way to resolve this problem. Unless I unregister that
>> process's name and then register the name again, and then, I can get the
>> global name by global:whereis_name/1.
>> Is there anything wrong with global? with so many nodes, I can't
>> unregister and then register a process name every time I find global return
>> me an undefined.

Resurrecting this from the dead, we've just released a
highly-scalable, eventually consistency, process registry that's
basically the spiritual successor of Riak PG, called Lasp PG. [1] It's
just a beta for now, but we're trying to demonstrate how it's easy to
build applications on top of the Lasp support libraries.

It uses the underlying Lasp network distribution and key-value store
for highly scalable (500+ node) clusters, with delta-optimized CRDTs
to reduce redundant network transmission and reduce garbage creation.

We're hoping that we can show that the libraries that we've built to
support Lasp are generally reusable in Erlang, and that the Lasp KV
store is a nice reusable peer-to-peer data store for embedding into
your applications.


[1] https://github.com/lasp-lang/lasp_pg

More information about the erlang-questions mailing list