leo_redundant_manager_api

leo_redaundant_manager’s API.

References

Description

leo_redaundant_manager’s API

Data Types

method()

method() = put | get | delete | head | default

Function Index

attach/1 attach a node.
attach/2  
attach/3  
attach/4  
attach/5  
checksum/1 get routing_table’s checksum.
create/0 Create the RING.
create/1  
create/2  
create/3  
delete_member_by_node/1 remove a member by node-name.
detach/1 detach a node.
detach/2  
dump/1 Dump table-records.
force_sync_workers/0 Force sync ring-workers.
get_alias/2 Generate an alias of the node.
get_alias/3  
get_alias/4  
get_cluster_status/0 Retrieve local cluster’s status.
get_cluster_tbl_checksums/0 Retrieve checksums of cluster-related tables.
get_member_by_node/1 get a member by node-name.
get_members/0 get members.
get_members/1  
get_members_by_status/1 get members by status.
get_members_by_status/2  
get_members_count/0 get # of members.
get_options/0 get routing-table’s options.
get_redundancies_by_addr_id/1 Retrieve redundancies from the ring-table.
get_redundancies_by_addr_id/2  
get_redundancies_by_key/1 Retrieve redundancies from the ring-table.
get_redundancies_by_key/2  
get_remote_clusters/0 Retrieve conf of remote clusters.
get_remote_clusters/1  
get_remote_members/1 Retrieve remote cluster members.
get_remote_members/2  
get_ring/0 Retrieve Ring.
get_ring/1  
has_charge_of_node/2 Has charge of node? ‘true’ is returned even if it detects an error.
has_member/1 Has a member ?.
is_alive/0 Is alive the process?.
range_of_vnodes/1 Retrieve range of vnodes.
rebalance/0 Re-balance objects in the cluster.
reserve/3 reserve a node during in operation.
reserve/5  
reserve/6  
set_options/1 set routing-table’s options.
suspend/1 suspend a node.
suspend/2  
synchronize/2 synchronize member-list and routing-table.
synchronize/3 synchronize member-list and routing-table.
table_info/1 Retrieve table-info by version.
table_info/1  
update_member/1 update members.
update_member_by_node/2 update a member by node-name.
update_member_by_node/3  
update_members/1 update members.

Function Details

attach/1

attach(Node) -> ok | {error, any()}

  • Node = atom()

attach a node.

attach/2

attach(Node, AwarenessL2) -> ok | {error, any()}

  • Node = atom()
  • AwarenessL2 = string()

attach/3

attach(Node, AwarenessL2, Clock) -> ok | {error, any()}

  • Node = atom()
  • AwarenessL2 = string()
  • Clock = integer()

attach/4

attach(Node, AwarenessL2, Clock, NumOfVNodes) -> ok | {error, any()}

  • Node = atom()
  • AwarenessL2 = string()
  • Clock = integer()
  • NumOfVNodes = integer()

attach/5

attach(Node, AwarenessL2, Clock, NumOfVNodes, RPCPort) -> ok | {error, any()}

  • Node = atom()
  • AwarenessL2 = string()
  • Clock = integer()
  • NumOfVNodes = integer()
  • RPCPort = integer()

checksum/1

checksum(Type) -> {ok, integer()} | {ok, {integer(), integer()}} | {error, any()}

  • Type = '?CHECKSUM_RING' | '?CHECKSUM_MEMBER' | term()

get routing_table’s checksum.

create/0

create() -> {ok, Members, HashValues} | {error, any()}

  • Members = [#member{}]
  • HashValues = [{atom(), integer()}]

Create the RING

create/1

create(Ver) -> {ok, Members, HashValues} | {error, any()}

  • Ver = '?VER_CUR' | '?VER_PREV'
  • Members = [#member{}]
  • HashValues = [{atom(), integer()}]

create/2

create(Ver, Members) -> {ok, Members, HashValues} | {error, any()}

  • Ver = '?VER_CUR' | '?VER_PREV'
  • Members = [#member{}]
  • HashValues = [{atom(), integer()}]

create/3

create(Ver, Members, Options) -> {ok, Members, HashValues} | {error, any()}

  • Ver = '?VER_CUR' | '?VER_PREV'
  • Members = [#member{}]
  • Options = [{atom(), any()}]
  • HashValues = [{atom(), integer()}]

delete_member_by_node/1

delete_member_by_node(Node) -> ok | {error, any()}

  • Node = atom()

remove a member by node-name.

detach/1

detach(Node) -> ok | {error, any()}

  • Node = atom()

detach a node.

detach/2

detach(Node, Clock) -> ok | {error, any()}

  • Node = atom()
  • Clock = integer()

dump/1

dump(Type) -> ok

  • Type = member | ring | both | work

Dump table-records.

force_sync_workers/0

force_sync_workers() -> ok

Force sync ring-workers

get_alias/2

get_alias(Node, GrpL2) -> {ok, tuple()}

  • Node = atom()
  • GrpL2 = string()

Generate an alias of the node

get_alias/3

get_alias(Table, Node, GrpL2) -> {ok, tuple()}

  • Table = member_table()
  • Node = atom()
  • GrpL2 = string()

get_alias/4

get_alias(X1::init, Table, Node, GrpL2) -> {ok, tuple()}

  • Table = member_table()
  • Node = atom()
  • GrpL2 = string()

get_cluster_status/0

get_cluster_status() -> {ok, #'?CLUSTER_STAT'{}} | not_found

Retrieve local cluster’s status

get_cluster_tbl_checksums/0

get_cluster_tbl_checksums() -> {ok, [tuple()]}

Retrieve checksums of cluster-related tables

get_member_by_node/1

get_member_by_node(Node) -> {ok, #member{}} | {error, any()}

  • Node = atom()

get a member by node-name.

get_members/0

get_members() -> {ok, [#member{}]} | {error, any()}

get members.

get_members/1

get_members(Ver::'?VER_CUR' | '?VER_PREV') -> {ok, list()} | {error, any()}

get_members_by_status/1

get_members_by_status(Status) -> {ok, [#member{}]} | {error, any()}

  • Status = atom()

get members by status

get_members_by_status/2

get_members_by_status(Ver, Status) -> {ok, [#member{}]} | {error, any()}

  • Ver = '?VER_CUR' | '?VER_PREV'
  • Status = atom()

get_members_count/0

get_members_count() -> integer() | {error, any()}

get # of members.

get_options/0

get_options() -> {ok, Options}

  • Options = [{atom(), any()}]

get routing-table’s options.

get_redundancies_by_addr_id/1

get_redundancies_by_addr_id(AddrId) -> {ok, #redundancies{}} | {error, any()}

  • AddrId = integer()

Retrieve redundancies from the ring-table.

get_redundancies_by_addr_id/2

get_redundancies_by_addr_id(Method, AddrId) -> {ok, #redundancies{}} | {error, any()}

  • Method = method()
  • AddrId = integer()

get_redundancies_by_key/1

get_redundancies_by_key(Key) -> {ok, #redundancies{}} | {error, any()}

  • Key = binary()

Retrieve redundancies from the ring-table.

get_redundancies_by_key/2

get_redundancies_by_key(Method, Key) -> {ok, #redundancies{}} | {error, any()}

  • Method = method()
  • Key = binary()

get_remote_clusters/0

get_remote_clusters() -> {ok, [#'?CLUSTER_INFO'{}]} | {error, any()}

Retrieve conf of remote clusters

get_remote_clusters/1

get_remote_clusters(NumOfDestClusters) -> {ok, [#'?CLUSTER_INFO'{}]} | {error, any()}

  • NumOfDestClusters = integer()

get_remote_members/1

get_remote_members(ClusterId) -> {ok, #'?CLUSTER_MEMBER'{}} | {error, any()}

  • ClusterId = atom()

Retrieve remote cluster members

get_remote_members/2

get_remote_members(ClusterId, NumOfMembers) -> {ok, #'?CLUSTER_MEMBER'{}} | {error, any()}

  • ClusterId = atom()
  • NumOfMembers = integer()

get_ring/0

get_ring() -> {ok, [tuple()]}

Retrieve Ring

get_ring/1

get_ring(SyncTarget) -> {ok, [tuple()]}

  • SyncTarget = sync_target()

has_charge_of_node/2

has_charge_of_node(Key, NumOfReplicas) -> boolean()

  • Key = binary()
  • NumOfReplicas = integer()

Has charge of node? ‘true’ is returned even if it detects an error

has_member/1

has_member(Node) -> boolean()

  • Node = atom()

Has a member ?

is_alive/0

is_alive() -> ok

Is alive the process?

range_of_vnodes/1

range_of_vnodes(ToVNodeId) -> {ok, [tuple()]}

  • ToVNodeId = integer()

Retrieve range of vnodes.

rebalance/0

rebalance() -> {ok, [tuple()]} | {error, any()}

Re-balance objects in the cluster.

reserve/3

reserve(Node, CurState, Clock) -> ok | {error, any()}

  • Node = atom()
  • CurState = atom()
  • Clock = integer()

reserve a node during in operation

reserve/5

reserve(Node, CurState, AwarenessL2, Clock, NumOfVNodes) -> ok | {error, any()}

  • Node = atom()
  • CurState = atom()
  • AwarenessL2 = string()
  • Clock = integer()
  • NumOfVNodes = integer()

reserve/6

reserve(Node, CurState, AwarenessL2, Clock, NumOfVNodes, RPCPort) -> ok | {error, any()}

  • Node = atom()
  • CurState = atom()
  • AwarenessL2 = string()
  • Clock = integer()
  • NumOfVNodes = integer()
  • RPCPort = integer()

set_options/1

set_options(Options) -> ok

  • Options = [{atom(), any()}]

set routing-table’s options.

suspend/1

suspend(Node) -> ok | {error, any()}

  • Node = atom()

suspend a node. (disable)

suspend/2

suspend(Node, Clock) -> ok | {error, any()}

  • Node = atom()
  • Clock = integer()

synchronize/2

synchronize(SyncTarget, SyncData) -> {ok, integer()} | {ok, [{atom(), any()}]} | {error, any()}

  • SyncTarget = sync_target()
  • SyncData = [{atom(), any()}]

synchronize member-list and routing-table.

synchronize/3

synchronize(SyncTarget, SyncData, Options) -> {ok, [{atom(), any()}]} | {error, any()}

  • SyncTarget = sync_target()
  • SyncData = [{atom(), any()}]
  • Options = [{atom(), any()}]

synchronize member-list and routing-table.

table_info/1

table_info(Ver) -> ring_table_info()

  • Ver = '?VER_CUR' | '?VER_PREV'

Retrieve table-info by version.

table_info/1

table_info(X1) -> any()

update_member/1

update_member(Member) -> ok | {error, any()}

  • Member = #member{}

update members.

update_member_by_node/2

update_member_by_node(Node::atom(), State::atom()) -> ok | {error, any()}

update a member by node-name.

update_member_by_node/3

update_member_by_node(Node::atom(), Clock::integer(), State::atom()) -> ok | {error, any()}

update_members/1

update_members(Members) -> ok | {error, any()}

  • Members = [#member{}]

update members.