From 9fe8adf35c16ab5d4566b03f3b36863c90b5b6dd Mon Sep 17 00:00:00 2001
From: Hans Bolinder
Date: Thu, 12 Mar 2015 15:35:13 +0100
Subject: Update Erlang Reference Manual
Language cleaned up by the technical writers xsipewe and tmanevik
from Combitech. Proofreading and corrections by Hans Bolinder.
---
system/doc/reference_manual/distributed.xml | 120 ++++++++++++++++++----------
1 file changed, 76 insertions(+), 44 deletions(-)
(limited to 'system/doc/reference_manual/distributed.xml')
diff --git a/system/doc/reference_manual/distributed.xml b/system/doc/reference_manual/distributed.xml
index 88f98bc106..fb83e356f9 100644
--- a/system/doc/reference_manual/distributed.xml
+++ b/system/doc/reference_manual/distributed.xml
@@ -4,7 +4,7 @@
- 20032013
+ 20032015Ericsson AB. All Rights Reserved.
@@ -36,22 +36,24 @@
runtime system is called a node. Message passing between
processes at different nodes, as well as links and monitors, are
transparent when pids are used. Registered names, however, are
- local to each node. This means the node must be specified as well
- when sending messages etc. using registered names.
+ local to each node. This means that the node must be specified as well
+ when sending messages, and so on, using registered names.
The distribution mechanism is implemented using TCP/IP sockets.
- How to implement an alternative carrier is described in ERTS User's Guide.
+ How to implement an alternative carrier is described in the
+ ERTS User's Guide.
Nodes
-
A node is an executing Erlang runtime system which has
- been given a name, using the command line flag -name
+
A node is an executing Erlang runtime system that has
+ been given a name, using the command-line flag -name
(long names) or -sname (short names).
-
The format of the node name is an atom name@host where
- name is the name given by the user and host is
+
The format of the node name is an atom name@host.
+ name is the name given by the user. host is
the full host name if long names are used, or the first part of
the host name if short names are used. node() returns
- the name of the node. Example:
The nodes in a distributed Erlang system are loosely connected.
- The first time the name of another node is used, for example if
+ The first time the name of another node is used, for example, if
spawn(Node,M,F,A) or net_adm:ping(Node) is called,
- a connection attempt to that node will be made.
+ a connection attempt to that node is made.
Connections are by default transitive. If a node A connects to
- node B, and node B has a connection to node C, then node A will
- also try to connect to node C. This feature can be turned off by
- using the command line flag -connect_all false, see
- erl(1).
+ node B, and node B has a connection to node C, then node A
+ also tries to connect to node C. This feature can be turned off by
+ using the command-line flag -connect_all false, see the
+ erl(1) manual page in ERTS.
If a node goes down, all connections to that node are removed.
- Calling erlang:disconnect_node(Node) will force disconnection
+ Calling erlang:disconnect_node(Node) forces disconnection
of a node.
The list of (visible) nodes currently connected to is returned by
nodes().
@@ -89,23 +91,24 @@ dilbert@uab
The Erlang Port Mapper Daemon epmd is automatically
started at every host where an Erlang node is started. It is
responsible for mapping the symbolic node names to machine
- addresses. See epmd(1).
+ addresses. See the
+ epmd(1) manual page in ERTS.
Hidden Nodes
In a distributed Erlang system, it is sometimes useful to
connect to a node without also connecting to all other nodes.
- An example could be some kind of O&M functionality used to
- inspect the status of a system without disturbing it. For this
- purpose, a hidden node may be used.
-
A hidden node is a node started with the command line flag
+ An example is some kind of O&M functionality used to
+ inspect the status of a system, without disturbing it. For this
+ purpose, a hidden node can be used.
+
A hidden node is a node started with the command-line flag
-hidden. Connections between hidden nodes and other nodes
are not transitive, they must be set up explicitly. Also, hidden
nodes does not show up in the list of nodes returned by
nodes(). Instead, nodes(hidden) or
nodes(connected) must be used. This means, for example,
- that the hidden node will not be added to the set of nodes that
+ that the hidden node is not added to the set of nodes that
global is keeping track of.
This feature was added in Erlang 5.0/OTP R7.
@@ -114,9 +117,11 @@ dilbert@uab
C Nodes
A C node is a C program written to act as a hidden node
in a distributed Erlang system. The library Erl_Interface
- contains functions for this purpose. Refer to the documentation
- for Erl_Interface and Interoperability Tutorial for more
- information about C nodes.
+ contains functions for this purpose. For more information about
+ C nodes, see the
+ Erl_Interface application and
+
+ Interoperability Tutorial..
@@ -125,7 +130,7 @@ dilbert@uab
with each other. In a network of different Erlang nodes, it is
built into the system at the lowest possible level. Each node has
its own magic cookie, which is an Erlang atom.
-
When a nodes tries to connect to another node, the magic cookies
+
When a node tries to connect to another node, the magic cookies
are compared. If they do not match, the connected node rejects
the connection.
At start-up, a node has a random atom assigned as its magic
@@ -141,8 +146,8 @@ dilbert@uab
the local node assume that all other nodes have the same cookie
Cookie.
Thus, groups of users with identical cookie files get Erlang
- nodes which can communicate freely and without interference from
- the magic cookie system. Users who want run nodes on separate
+ nodes that can communicate freely and without interference from
+ the magic cookie system. Users who want to run nodes on separate
file systems must make certain that their cookie files are
identical on the different file systems.
For a node Node1 with magic cookie Cookie to be
@@ -154,18 +159,24 @@ dilbert@uab
The default when a connection is established between two nodes,
is to immediately connect all other visible nodes as well. This
way, there is always a fully connected network. If there are
- nodes with different cookies, this method might be inappropriate
- and the command line flag -connect_all false must be set,
- see erl(1).
+ nodes with different cookies, this method can be inappropriate
+ and the command-line flag -connect_all false must be set,
+ see the erl(1)
+ manual page in ERTS.
The magic cookie of the local node is retrieved by calling
erlang:get_cookie().
Distribution BIFs
-
Some useful BIFs for distributed programming, see
- erlang(3) for more information:
+
Some useful BIFs for distributed programming
+ (for more information, see the
+ erlang(3) manual page in ERTS:
+
+ BIF
+ Description
+ erlang:disconnect_node(Node)Forces the disconnection of a node.
@@ -180,7 +191,9 @@ dilbert@uab
monitor_node(Node, true|false)
- Monitor the status of Node. A message{nodedown, Node} is received if the connection to it is lost.
+ Monitors the status of
+ Node. A message{nodedown, Node} is received
+ if the connection to it is lost.node()
@@ -196,11 +209,16 @@ dilbert@uab
nodes(Arg)
- Depending on Arg, this function can return a list not only of visible nodes, but also hidden nodes and previously known nodes, etc.
+ Depending on Arg,
+ this function can return a list not only of visible nodes,
+ but also hidden nodes and previously known nodes, and so on.erlang:set_cookie(Node, Cookie)
- Sets the magic cookie used when connecting to Node. If Node is the current node, Cookie will be used when connecting to all new nodes.
+ Sets the magic cookie used
+ when connecting to Node. If Node is the
+ current node, Cookie is used when connecting to
+ all new nodes.spawn[_link|_opt](Node, Fun)
@@ -210,18 +228,24 @@ dilbert@uab
spawn[_link|opt](Node, Module, FunctionName, Args)Creates a process at a remote node.
- Distribution BIFs.
+ Distribution BIFs
- Distribution Command Line Flags
-
Examples of command line flags used for distributed programming,
- see erl(1) for more information:
+ Distribution Command-Line Flags
+
Examples of command-line flags used for distributed programming
+ (for more information, see the erl(1)
+ manual page in ERTS:
+
+ Command-Line Flag
+ Description
+ -connect_all false
- Only explicit connection set-ups will be used.
+ Only explicit connection
+ set-ups are used.-hidden
@@ -239,15 +263,19 @@ dilbert@uab
-sname NameMakes a runtime system into a node, using short node names.
- Distribution Command Line Flags.
+ Distribution Command-Line Flags
Distribution Modules
Examples of modules useful for distributed programming:
-
In Kernel:
+
In the Kernel application:
+
+ Module
+ Description
+ globalA global name registration facility.
@@ -266,8 +294,12 @@ dilbert@uab
Kernel Modules Useful For Distribution.
-
In STDLIB:
+
In the STDLIB application:
+
+ Module
+ Description
+ slaveStart and control of slave nodes.
--
cgit v1.2.3