A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.erlang.org/doc/apps/kernel/global_group below:

global_group — kernel v10.3.1

Grouping nodes to global name registration groups.

This module makes it possible to partition the nodes of a system into global groups. Each global group has its own global namespace, see global.

The main advantage of dividing systems into global groups is that the background load decreases while the number of nodes to be updated is reduced when manipulating globally registered names.

The Kernel configuration parameter global_groups defines the global groups:

{global_groups, [GroupTuple :: group_tuple()]}

For the processes and nodes to run smoothly using the global group functionality, the following criteria must be met:

In the following descriptions, a group node is a node belonging to the same global group as the local node.

Notes See Also

global, erl

Summary Types

A GroupTuple without PublishType is the same as a GroupTuple with PublishType equal to normal.

A node started with command-line flag -hidden (see erl) is said to be a hidden node. A hidden node establishes hidden connections to nodes not part of the same global group, but normal (visible) connections to nodes part of the same global group.

Functions

Returns a tuple containing the name of the global group that the local node belongs to, and the list of all other known group names.

Returns a list containing information about the global groups. Each list element is a tuple. The order of the tuples is undefined.

Alter the calling process' subscription of node status change messages.

Returns the names of all group nodes, regardless of their current status.

Returns a list of all names that are globally registered on the specified node or in the specified global group.

Sends Msg to the pid represented by the globally registered name Name.

Equivalent to send(Name, Msg) except that he search is limited to the node or global group specified by Where.

Synchronizes the group nodes, that is, the global name servers on the group nodes. Also checks the names globally registered in the current global group and unregisters them on any known node not part of the group.

Searched for Name in any global group.

Equivalent to whereis_name(Name) except that he search is limited to the node or global group specified by Where.

Types
-type group_name() :: atom().

A GroupTuple without PublishType is the same as a GroupTuple with PublishType equal to normal.

-type info_item() ::
          {state, State :: sync_state()} |
          {own_group_name, GroupName :: group_name()} |
          {own_group_nodes, Nodes :: [node()]} |
          {synched_nodes, Nodes :: [node()]} |
          {sync_error, Nodes :: [node()]} |
          {no_contact, Nodes :: [node()]} |
          {other_groups, Groups :: [group_tuple()]} |
          {monitoring, Pids :: [pid()]}.

A registered name.

-type publish_type() :: hidden | normal.

A node started with command-line flag -hidden (see erl) is said to be a hidden node. A hidden node establishes hidden connections to nodes not part of the same global group, but normal (visible) connections to nodes part of the same global group.

A global group defined with PublishType equal to hidden is said to be a hidden global group. All nodes in a hidden global group are hidden nodes, whether they are started with command-line flag -hidden or not.

-type sync_state() :: no_conf | synced.
Functions
-spec global_groups() -> {GroupName, GroupNames} | undefined
                       when GroupName :: group_name(), GroupNames :: [GroupName].

Returns a tuple containing the name of the global group that the local node belongs to, and the list of all other known group names.

Returns undefined if no global groups are defined.

Returns a list containing information about the global groups. Each list element is a tuple. The order of the tuples is undefined.

-spec monitor_nodes(Flag) -> ok when Flag :: boolean().

Alter the calling process' subscription of node status change messages.

If Flag is equal to true the calling process starts subscribing to node status change messages. If equal to false it stops subscribing.

A process that has subscribed receives the messages {nodeup, Node} and {nodedown, Node} when a group node connects or disconnects, respectively.

-spec own_nodes() -> Nodes when Nodes :: [Node :: node()].

Returns the names of all group nodes, regardless of their current status.

-spec registered_names(Where) -> Names when Where :: where(), Names :: [Name :: name()].

Returns a list of all names that are globally registered on the specified node or in the specified global group.

-spec send(Name, Msg) -> pid() | {badarg, {Name, Msg}} when Name :: name(), Msg :: term().

Sends Msg to the pid represented by the globally registered name Name.

send/2 searches for Name any any global group. The global groups are searched in the order that they appear in the value of configuration parameter global_groups.

If Name is found, message Msg is sent to the corresponding pid. The pid is also the return value of the function. If the name is not found, the function returns {badarg, {Name, Msg}}.

-spec send(Where, Name, Msg) -> pid() | {badarg, {Name, Msg}}
              when Where :: where(), Name :: name(), Msg :: term().

Equivalent to send(Name, Msg) except that he search is limited to the node or global group specified by Where.

Synchronizes the group nodes, that is, the global name servers on the group nodes. Also checks the names globally registered in the current global group and unregisters them on any known node not part of the group.

If synchronization is not possible, an error report is sent to the error logger (see also error_logger.

Returns {error, {'invalid global_groups definition', Bad}} if configuration parameter global_groups has an invalid value Bad.

-spec whereis_name(Name) -> pid() | undefined when Name :: name().

Searched for Name in any global group.

The global groups are searched in the order that they appear in the value of configuration parameter global_groups.

If Name is found, the corresponding pid is returned. If the name is not found, the function returns undefined.

-spec whereis_name(Where, Name) -> pid() | undefined when Where :: where(), Name :: name().

Equivalent to whereis_name(Name) except that he search is limited to the node or global group specified by Where.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4