Module admin

Aministrative helper functions (mostly for debugging).

Copyright © 2008-2015 Zuse Institute Berlin

Version: $Id$

Authors: Thorsten Schuett (schuett@zib.de).

Description

Aministrative helper functions (mostly for debugging)

Data Types

check_ring_deep_error()

check_ring_deep_error() = 
    {error,
     'in_node:',
     Node :: node:node_type(),
     'predList:',
     Preds :: nodelist:non_empty_snodelist(),
     'succList:',
     Succs :: nodelist:non_empty_snodelist(),
     'nodes:',
     Nodes :: nodelist:non_empty_snodelist(),
     'UnknownPreds:',
     UnknownPreds :: nodelist:snodelist(),
     'UnknownSuccs:',
     UnknownSuccs :: nodelist:snodelist()}

erlang_timestamp()

erlang_timestamp() = 
    {MegaSecs :: non_neg_integer(),
     Secs :: 0..999999,
     MicroSecs :: 0..999999}

Function Index

add_node/1
add_node_at_id/1add new Scalaris nodes on the local node.
add_nodes/1
add_nodes_at_ids/1
add_remaining_symmetric_nodes/0if you started a single firstnode.sh you can add the remaining symmetric r-1 nodes in the local VM, for example to interactively run a unittest scenario step by step.
check_leases/0
check_leases/1
check_ring/0Contact mgmt server and check that each node's successor and predecessor are correct.
check_ring_deep/0Contact mgmt server and check that each node's successor and predecessor lists are correct.
del_node/2Delete a single node.
del_nodes/2Deletes Scalaris nodes from the current VM.
del_nodes_by_name/2
diff_dump/2
get_dht_node_specs/0
get_dump/0returns communications information.
get_dump_bw/0returns communications information.
nodes/0contact mgmt server and list the known ip addresses.
number_of_nodes/0
print_ages/0
start/0
start_link/0
wait_for_stable_ring/1

Function Details

add_node_at_id/1

add_node_at_id(Id :: rt_chord:key()) ->
                  pid_groups:groupname() | {error, term()}

add new Scalaris nodes on the local node

add_node/1

add_node(Options :: [tuple()]) ->
            pid_groups:groupname() | {error, term()}

add_nodes/1

add_nodes(Count :: non_neg_integer()) ->
             {[pid_groups:groupname()], [{error, term()}]}

add_nodes_at_ids/1

add_nodes_at_ids(Keys :: [rt_chord:key()]) ->
                    {[pid_groups:groupname()], [{error, term()}]}

add_remaining_symmetric_nodes/0

add_remaining_symmetric_nodes() ->
                                 {[pid_groups:groupname()],
                                  [{error, term()}]}

if you started a single firstnode.sh you can add the remaining symmetric r-1 nodes in the local VM, for example to interactively run a unittest scenario step by step.

get_dht_node_specs/0

get_dht_node_specs() ->
                      [{Id :: term() | undefined,
                        Child :: pid() | undefined,
                        Type :: worker | supervisor,
                        Modules :: [module()] | dynamic}]

del_nodes/2

del_nodes(Count :: non_neg_integer(), Graceful :: boolean()) ->
             Successful :: [pid_groups:groupname()]

Deletes Scalaris nodes from the current VM.

del_nodes_by_name/2

del_nodes_by_name(Names :: [pid_groups:groupname()],
                  Graceful :: boolean()) ->
                     {Successful :: [pid_groups:groupname()],
                      NotFound :: [pid_groups:groupname()]}

del_node/2

del_node(X1 ::
             {Id :: term() | undefined,
              Child :: pid() | undefined,
              Type :: worker | supervisor,
              Modules :: [module()] | dynamic},
         Graceful :: boolean()) ->
            ok | {error, not_found | no_partner_found}

Delete a single node.

wait_for_stable_ring/1

wait_for_stable_ring(NrOfNodes :: non_neg_integer()) -> ok

check_ring/0

check_ring() -> {error, string()} | ok

Contact mgmt server and check that each node's successor and predecessor are correct.

check_ring_deep/0

check_ring_deep() -> ok | check_ring_deep_error()

Contact mgmt server and check that each node's successor and predecessor lists are correct.

check_leases/0

check_leases() -> boolean()

check_leases/1

check_leases(TargetSize :: pos_integer()) -> boolean()

number_of_nodes/0

number_of_nodes() -> non_neg_integer() | timeout

get_dump/0

get_dump() ->
            {Received :: comm_logger:stat_tree(),
             Sent :: comm_logger:stat_tree(),
             erlang_timestamp()}

returns communications information. the comm-layer logs for each message-tag how many message were sent and how large were these messages in total. get_dump/0 returns a map from message-tag to message-count and message-size and a timestamp when the measurement was started.

get_dump_bw/0

get_dump_bw() ->
               {Received :: [{atom(), float(), float()}],
                Sent :: [{atom(), float(), float()}]}

returns communications information. similar to get_dump/0 it returns message statistics per message-tag, but it scales all values by the elapsed time. so it returns messages per second and bytes per second for each message-tag

diff_dump/2

diff_dump(Before :: comm_logger:stat_tree(),
          After :: comm_logger:stat_tree()) ->
             [{Tag :: atom(),
               Size :: integer(),
               Count :: integer()}]

start_link/0

start_link() -> {ok, pid()}

start/0

start() -> ok

nodes/0

nodes() -> list()

contact mgmt server and list the known ip addresses

print_ages/0

print_ages() -> ok


Generated by EDoc, Sep 12 2019, 16:35:04.