[erlang-questions] Distributing nodes and full awareness

Serge Aleynikov <>
Sun Apr 19 16:40:49 CEST 2009


The global name server (with help of global_group server if global name 
space is partitioned into global groups) maintains the fully 
interconnected mesh of nodes.  If you don't desire to have this 
functionality enabled, you can disable it by passing "-connect_all 
false" to the emulator at startup.  However this will inhibit the global 
name registration functionality.  If you have a large network (such as 
one of the networks we have with somewhat 400 nodes), and still would 
like to take advantage of global name registration, you can partition 
the global name space (via {kernel, [{global_group, [{GroupName, 
Nodes}]}]} option), so that only a handful of "master" nodes maintains a 
fully connected mesh, and other "auxiliary" nodes connect to one (or 
some) nodes in the "master" ring.

net_adm:ping(Node) uses net_kernel and global.  If you need to make sure 
that all mesh connectivity is fully synchronous, you can call 
global:sync() prior to issuing net_adm:ping/1.

Serge

Logan, Martin wrote:
> When net_kernel:connect_node/1 is called or net_adm:ping/1 or some such to establish a connection between nodes at some time subsequent to that connection all the nodes in the cloud of nodes will be known by the newly connected node. So, if node a connects to node b and b already knows about c and d then at some point shortly after the connection of node a node a will know about nodes b,c and d.  How is this accomplished and what are the semantics.  How can it be known when the transfer of all nodes in the system is completed.  I notice that after a net adm ping nodes() returns a list of length n and 5 seconds later even though no new nodes have been added to the cloud it returns n + y.  Can anyone save me the time of digging into the code to figure out the semantics here?
> 
> Cheers,
> Martin
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list