leo_redundant_manager

leo_redaundant_manager’s server.

Behaviours: `gen_server <gen_server.html>`__.

References

Description

leo_redaundant_manager’s server

Function Index

attach/4 Change node status to ‘attach’.
attach/5  
attach/6  
checksum/1 Retrieve checksum of ring/member.
code_change/3 Convert process state when code is changed.
create/1 Create the Rings.
delete_member_by_node/1 Remove a member by node.
detach/2 Change node status to ‘detach’.
detach/3  
dump/1 Dump files which are member and ring.
get_member_by_node/1 Retrieve a member by node.
get_members/0 Retrieve all members.
get_members/1  
get_members_by_status/2 Retrieve members by status.
handle_call/3 gen_server callback - Module:handle_call(Request, From, State) -> Result.
handle_cast/2 Handling cast message.
handle_info/2 Handling all non call/cast messages.
has_member/1 Is exists member?.
init/1 Initiates the server.
reserve/5 Change node status to ‘reserve’.
reserve/6  
start_link/0 Start the process.
stop/0 Stop the process.
suspend/2 Change node status to ‘suspend’.
terminate/2 This function is called by a gen_server when it is about to terminate.
update_member/1 Modify a member.
update_member_by_node/2 Modify a member by node.
update_member_by_node/3  
update_members/1 Modify members.

Function Details

attach/4

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

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

Change node status to ‘attach’.

attach/5

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

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

attach/6

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

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

checksum/1

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

  • Type = checksum_type()

Retrieve checksum of ring/member

code_change/3

code_change(OldVsn, State, Extra) -> any()

Convert process state when code is changed

create/1

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

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

Create the Rings.

delete_member_by_node/1

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

  • Node = atom()

Remove a member by node.

detach/2

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

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

Change node status to ‘detach’.

detach/3

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

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

dump/1

dump(Type) -> ok

  • Type = atom()

Dump files which are member and ring.

get_member_by_node/1

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

  • Node = atom()

Retrieve a member by node.

get_members/0

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

Retrieve all members.

get_members/1

get_members(Ver) -> {ok, [#member{}]}

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

get_members_by_status/2

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

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

Retrieve members by status.

handle_call/3

handle_call(X1, From, State) -> any()

gen_server callback - Module:handle_call(Request, From, State) -> Result

handle_cast/2

handle_cast(Msg, State) -> any()

Handling cast message

gen_server callback - Module:handle_cast(Request, State) -> Result.

handle_info/2

handle_info(Info, State) -> any()

Handling all non call/cast messages

gen_server callback - Module:handle_info(Info, State) -> Result.

has_member/1

has_member(Node) -> boolean()

  • Node = atom()

Is exists member?

init/1

init(X1) -> any()

Initiates the server

reserve/5

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

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

Change node status to ‘reserve’.

reserve/6

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

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

stop/0

stop() -> any()

Stop the process

suspend/2

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

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

Change node status to ‘suspend’.

terminate/2

terminate(Reason, State) -> any()

This function is called by a gen_server when it is about to terminate. It should be the opposite of Module:init/1 and do any necessary cleaning up. When it returns, the gen_server terminates with Reason.

update_member/1

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

  • Member = #member{}

Modify a member.

update_member_by_node/2

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

  • Node = atom()
  • NodeState = atom()

Modify a member by node.

update_member_by_node/3

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

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

update_members/1

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

  • Members = [#member{}]

Modify members.