View Source partisan_peer_service (partisan v5.0.0-rc.8)

This modules implements the Peer Service API. All functions in this module forward the invocation to the configured peer service manager (option peer_service_manager) which must be one of the Partisan's managers implementing partisan_peer_service_manager, i.e. one of:Each node running Partisan listens for connections on a particular IP address and port. This is the information that is required when other nodes wish to join this node.

Summary

Functions

Adds a supervised callback to receive peer service membership updates.
Returns the broadcast servers view of full cluster membership. Wait indefinitely for a response is returned from the process.
Returns the broadcast servers view of full cluster membership. Waits Timeout ms for a response from the server.
cancel exchanges started by this node.
Return peer service connections
Decode peer_service_manager state from an encoded form
return a list of exchanges, started by broadcast on thisnode, that are running.
returns a list of exchanges, started by broadcast on Node, that are running.
Inject a partition.
Leave the cluster. We will not be able to re-join the cluster, we must be restarted first.
Remove a node from the cluster. Subsequently calling join (NodeSpec) will not work for the removed node. The removed node must be restarted first.
Return current peer service manager for this
Return a sampling of nodes connected to this node. When using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager this is the set of all cluster members. However, if you're using other managers, the result will only be a sampling of the nodes.
Return cluster members
Return cluster members

Trigger function on connection close for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

Trigger function on connection close for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

Trigger function on connection open for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

Trigger function on connection open for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

Reserve a slot for the particular tag.
Resolve a partition.
Stop
Update cluster members with a list of node specifications.

Types

-type ttl() :: non_neg_integer().

Functions

Link to this function

add_sup_callback(Function)

View Source
Adds a supervised callback to receive peer service membership updates.
-spec broadcast_members() -> ordsets:ordset(node()).
Returns the broadcast servers view of full cluster membership. Wait indefinitely for a response is returned from the process.
Link to this function

broadcast_members(Timeout)

View Source
-spec broadcast_members(infinity | pos_integer()) -> ordsets:ordset(node()).
Returns the broadcast servers view of full cluster membership. Waits Timeout ms for a response from the server.
Link to this function

cancel_exchanges(WhichExchanges)

View Source
cancel exchanges started by this node.
Return peer service connections
-spec decode(term()) -> term().
Decode peer_service_manager state from an encoded form
-spec exchanges() -> {ok, partisan_plumtree_broadcast:exchanges()} | {error, {badrpc, Reason :: any()}}.
return a list of exchanges, started by broadcast on thisnode, that are running.
-spec exchanges(node()) ->
             {ok, partisan_plumtree_broadcast:exchanges()} | {error, {badrpc, Reason :: any()}}.
returns a list of exchanges, started by broadcast on Node, that are running.
-spec get_local_state() -> term().
Link to this function

inject_partition(Origin, TTL)

View Source
-spec inject_partition(partisan:node_spec(), ttl()) -> {ok, reference()} | {error, not_implemented}.
Inject a partition.
-spec join(partisan:node_spec() | node() | list) -> ok | {error, self_join | any()}.
-spec leave() -> ok.
Leave the cluster. We will not be able to re-join the cluster, we must be restarted first.
-spec leave(partisan:node_spec()) -> ok.
Remove a node from the cluster. Subsequently calling join (NodeSpec) will not work for the removed node. The removed node must be restarted first.
-spec manager() -> module().
Return current peer service manager for this
-spec member(Node :: node() | partisan:node_spec()) -> boolean().
Return a sampling of nodes connected to this node. When using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager this is the set of all cluster members. However, if you're using other managers, the result will only be a sampling of the nodes.
-spec members() -> {ok, [node()]}.
Return cluster members
Link to this function

members_for_orchestration()

View Source
-spec members_for_orchestration() -> [partisan:node_spec()].
Return cluster members
-spec on_down(node() | partisan:node_spec() | any | '_', function()) -> ok | {error, not_implemented}.

Trigger function on connection close for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

At the moment, this only works when using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager.
Link to this function

on_down(Node, Function, Opts)

View Source
-spec on_down(node() | partisan:node_spec() | any | '_',
        partisan_peer_service_manager:on_event_fun(),
        Opts :: #{channel => partisan:channel()}) ->
           ok | {error, not_implemented}.

Trigger function on connection close for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

At the moment, this only works when using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager.
-spec on_up(node() | partisan:node_spec() | any | '_', partisan_peer_service_manager:on_event_fun()) ->
         ok | {error, not_implemented}.

Trigger function on connection open for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

At the moment, this only works when using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager.
Link to this function

on_up(Node, Function, Opts)

View Source
-spec on_up(node() | partisan:node_spec() | any | '_',
      partisan_peer_service_manager:on_event_fun(),
      Opts :: #{channel => partisan:channel()}) ->
         ok | {error, not_implemented}.

Trigger function on connection open for a given node. Function is a function object taking zero or a single argument, where the argument is the Node name.

At the moment, this only works when using a full-mesh topology i.e. partisan_pluggable_peer_service_manager or partisan_static_peer_service_manager.
-spec partitions() -> {ok, partisan_peer_service_manager:partitions()} | {error, not_implemented}.
-spec reserve(atom()) -> ok | {error, no_available_slots}.
Reserve a slot for the particular tag.
Link to this function

resolve_partition(Reference)

View Source
-spec resolve_partition(reference()) -> ok | {error, not_implemented}.
Resolve a partition.
Stop
Stop
-spec sync_join(partisan:node_spec()) -> ok | {error, self_join | not_implemented | any()}.
-spec update_members(Members :: [partisan:node_spec()]) -> ok | {error, not_implemented}.
Update cluster members with a list of node specifications.