Module riak_control_session

Server responsible for tracking state of the Riak cluster and refreshing state on a particular interval.

Description

Server responsible for tracking state of the Riak cluster and refreshing state on a particular interval.

Data Types

action()

action() = leave | remove | {replace, node()} | {force_replace, node()}

handoff()

handoff() = {atom(), integer(), atom()}

handoffs()

handoffs() = [handoff()]

home()

home() = primary | fallback | undefined

index()

index() = integer()

member()

member() = #member_info_v2{node = atom(), status = status(), reachable = boolean(), vnodes = vnodes(), handoffs = handoffs(), ring_pct = float(), pending_pct = float(), mem_total = integer(), mem_used = integer(), mem_erlang = integer(), action = action(), replacement = node()}

members()

members() = [member()]

n_vals()

n_vals() = [pos_integer()]

normalized_action()

normalized_action() = leave | remove | replace | force_replace | stop | down

owner()

owner() = atom()

partition()

partition() = #partition_info{index = index(), partition = integer(), owner = owner(), vnodes = services(), handoffs = handoffs()}

partitions()

partitions() = [partition()]

ring()

ring() = riak_core_ring:riak_core_ring()

service()

service() = {atom(), home()}

services()

services() = [service()]

stage_error()

stage_error() = nodedown | already_leaving | not_member | only_member | is_claimant | invalid_replacement | already_replacement | not_reachable | not_single_node | self_join

status()

status() = valid | invalid | down | leaving | incompatible | transitioning

version()

version() = integer()

vnode()

vnode() = {{atom(), atom()}, atom()}

vnodes()

vnodes() = [vnode()]

Function Index

clear_plan/0Clear the staged cluster plan.
code_change/3
commit_plan/0Commit a staged cluster plan.
force_update/0Force ring/membership update.
get_default_n_val/0Return list of available n_vals.
get_my_info/0Return current nodes information.
get_n_vals/0Return list of available n_vals.
get_nodes/0Return list of cluster members.
get_partitions/0Return partition list.
get_plan/0Get the staged cluster plan.
get_ring/0Return ring.
get_services/0Return service list.
get_status/0Get overall cluster status.
get_version/0Return version.
handle_call/3
handle_cast/2 Whenever there's a change to the ring, we try and update our localized view of "the world".
handle_info/2
init/1 Initialize and retrieve initial state.
stage_change/3Stage a change to the cluster.
start_link/0Start service from supervisor.
terminate/2

Function Details

clear_plan/0

clear_plan() -> ok | error

Clear the staged cluster plan.

code_change/3

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

commit_plan/0

commit_plan() -> ok | error

Commit a staged cluster plan.

force_update/0

force_update() -> ok

Force ring/membership update.

get_default_n_val/0

get_default_n_val() -> {ok, version(), pos_integer()}

Return list of available n_vals.

get_my_info/0

get_my_info() -> member()

Return current nodes information.

get_n_vals/0

get_n_vals() -> {ok, version(), n_vals()}

Return list of available n_vals.

get_nodes/0

get_nodes() -> {ok, version(), members()}

Return list of cluster members.

get_partitions/0

get_partitions() -> {ok, version(), partitions()}

Return partition list.

get_plan/0

get_plan() -> {ok, list(), list()} | {error, atom()}

Get the staged cluster plan.

get_ring/0

get_ring() -> {ok, version(), ring()}

Return ring.

get_services/0

get_services() -> {ok, version(), services()}

Return service list.

get_status/0

get_status() -> {ok, version(), status()}

Get overall cluster status.

get_version/0

get_version() -> version()

Return version.

handle_call/3

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

handle_cast/2

handle_cast(X1, State) -> any()

Whenever there's a change to the ring, we try and update our localized view of "the world". However, ring updates can happen very often, and large rings change *a lot*. For this reason, we only want to update the ring every so often. So once we've updated the ring, a tick flag is set indicating that we can't update the ring any more until it's cleared.

handle_info/2

handle_info(X1, State) -> any()

init/1

init(X1) -> any()

Initialize and retrieve initial state. Also, register watchers for ring and membership changes.

stage_change/3

stage_change(Node::node(), Action::normalized_action(), Replacement::node()) -> ok | {error, stage_error()} | {badrpc, nodedown}

Stage a change to the cluster.

start_link/0

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

Start service from supervisor.

terminate/2

terminate(Reason, State) -> any()


Generated by EDoc