Module riak_ensemble_peer

Behaviours: gen_fsm.

Data Types

change_error()

change_error() = already_member | not_member

ensemble_id()

ensemble_id() = term()

epoch()

epoch() = integer()

fact()

fact() = #fact{epoch = epoch(), seq = seq(), leader = peer_id(), view_vsn = {epoch(), seq()}, pend_vsn = {epoch(), seq()}, commit_vsn = {epoch(), seq()}, pending = {vsn(), views()}, views = [[peer_id()]]}

fsm_from()

fsm_from() = {term(), term()}

key()

key() = any()

leader_id()

leader_id() = undefined | peer_id()

modify_fun()

modify_fun() = function() | {module(), atom(), term()}

next_state()

next_state() = {next_state, atom(), state()} | {stop, normal, state()}

obj()

obj() = any()

peer_change()

peer_change() = term()

peer_id()

peer_id() = {term(), node()}

seq()

seq() = integer()

state()

state() = #state{id = peer_id(), ensemble = ensemble_id(), ets = ets:tid(), fact = fact(), awaiting = riak_ensemble_msg:msg_state(), preliminary = {peer_id(), epoch()}, abandoned = {epoch(), seq()}, timer = timer(), ready = boolean(), members = [peer_id()], peers = [{peer_id(), pid()}], mod = module(), modstate = any(), workers = tuple(), tree_trust = boolean(), tree_ready = boolean(), alive = integer(), last_views = [[peer_id()]], async = pid(), tree = pid(), lease = riak_ensemble_lease:lease_ref(), watchers = [{pid(), reference()}], self = pid()}

std_reply()

std_reply() = timeout | failed | unavailable | nack | {ok, term()}

sync_next_state()

sync_next_state() = {reply, term(), atom(), state()} | {next_state, atom(), state()} | {stop, normal, state()}

target()

target() = pid() | ensemble_id()

timer()

timer() = term()

views()

views() = [[peer_id()]]

vsn()

vsn() = {epoch(), seq()}

Function Index

backend_pong/1
check_quorum/2
code_change/4
count_quorum/2
do_kmodify/4
do_kput_once/4
do_kupdate/4
election/2
election/3
exchange/2
exchange/3
following/2
following/3
force_state/2
get_info/1
get_leader/1
handle_event/3
handle_info/3
handle_sync_event/4
init/1
join/2
join/3
kdelete/4
kget/4
kget/5
kmodify/6
kover/5
kput_once/5
ksafe_delete/5
kupdate/6
leading/2
leading/3
obj_value/2
obj_value/3
pending/2
pending/3
ping_quorum/2
prefollow/2
prefollow/3
prelead/2
prelead/3
prepare/2
prepare/3
probe/2
probe/3
repair/2
repair/3
setup/2
stable_views/2
start/4
start_link/4
stop_watching/1
terminate/3
tree_info/1
update_members/3
valid_obj_hash/2
watch_leader_status/1

Function Details

backend_pong/1

backend_pong(Pid) -> any()

check_quorum/2

check_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> ok | timeout

code_change/4

code_change(OldVsn::term(), StateName::atom(), State::state(), Extra::term()) -> {ok, atom(), state()}

count_quorum/2

count_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> integer() | timeout

do_kmodify/4

do_kmodify(Obj, NextSeq, State, X4) -> any()

do_kput_once/4

do_kput_once(Obj, NextSeq, State, X4) -> any()

do_kupdate/4

do_kupdate(Obj, NextSeq, State, X4) -> any()

election/2

election(Msg::term(), State::state()) -> next_state()

election/3

election(Msg::term(), From::fsm_from(), State::state()) -> {next_state, election, state()}

exchange/2

exchange(Msg, State) -> any()

exchange/3

exchange(Msg, From, State) -> any()

following/2

following(Msg::term(), State::state()) -> next_state()

following/3

following(Msg::term(), From::fsm_from(), State::state()) -> {next_state, following, state()}

force_state/2

force_state(Pid, EpochSeq) -> any()

get_info/1

get_info(Pid) -> any()

get_leader/1

get_leader(Pid::pid()) -> peer_id()

handle_event/3

handle_event(Event::term(), StateName::atom(), State::state()) -> {next_state, atom(), state()}

handle_info/3

handle_info(Info, StateName, State) -> any()

handle_sync_event/4

handle_sync_event(Event::term(), From::term(), StateName::atom(), State::state()) -> {reply, ok, atom(), state()} | {reply, ensemble_id(), atom(), state()} | {stop, normal, ok, state()}

init/1

init(X1::[any(), ...]) -> {ok, setup, state()}

join/2

join(Pid::pid(), Id::peer_id()) -> ok | timeout | {error, [{already_member, peer_id()}]}

join/3

join(Pid::pid(), Id::peer_id(), Timeout::timeout()) -> ok | timeout | {error, [{already_member, peer_id()}]}

kdelete/4

kdelete(Node::node(), Target::target(), Key::key(), Timeout::timeout()) -> std_reply()

kget/4

kget(Node::node(), Target::target(), Key::key(), Timeout::timeout()) -> std_reply()

kget/5

kget(Node::node(), Target::target(), Key::key(), Timeout::timeout(), Opts::term()) -> std_reply()

kmodify/6

kmodify(Node::node(), Target::target(), Key::key(), ModFun::modify_fun(), Default::term(), Timeout::timeout()) -> std_reply()

kover/5

kover(Node::node(), Target::target(), Key::key(), New::obj(), Timeout::timeout()) -> std_reply()

kput_once/5

kput_once(Node::node(), Target::target(), Key::key(), New::obj(), Timeout::timeout()) -> std_reply()

ksafe_delete/5

ksafe_delete(Node::node(), Target::target(), Key::key(), Current::obj(), Timeout::timeout()) -> std_reply()

kupdate/6

kupdate(Node::node(), Target::target(), Key::key(), Current::obj(), New::term(), Timeout::timeout()) -> std_reply()

leading/2

leading(Msg::term(), State::state()) -> next_state()

leading/3

leading(Msg::term(), From::fsm_from(), State::state()) -> sync_next_state()

obj_value/2

obj_value(Obj::obj(), Mod::atom() | state()) -> any()

obj_value/3

obj_value(Obj::obj(), Default::term(), Mod::atom() | state()) -> any()

pending/2

pending(Msg, State) -> any()

pending/3

pending(Msg, From, State) -> any()

ping_quorum/2

ping_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> {leader_id(), boolean(), [peer_id()]} | timeout

prefollow/2

prefollow(Msg, State) -> any()

prefollow/3

prefollow(Msg, From, State) -> any()

prelead/2

prelead(Msg, State) -> any()

prelead/3

prelead(Msg, From, State) -> any()

prepare/2

prepare(Msg::term(), State::state()) -> next_state()

prepare/3

prepare(Msg::term(), From::fsm_from(), State::state()) -> {next_state, prepare, state()}

probe/2

probe(Msg::term(), State::state()) -> next_state()

probe/3

probe(Msg::term(), From::fsm_from(), State::state()) -> {next_state, probe, state()}

repair/2

repair(Msg, State) -> any()

repair/3

repair(Msg::term(), From::fsm_from(), State::state()) -> {next_state, repair, state()}

setup/2

setup(X1, State0) -> any()

stable_views/2

stable_views(Ensemble::ensemble_id(), Timeout::timeout()) -> {ok, boolean()} | timeout

start/4

start(Mod::module(), Ensemble::ensemble_id(), Id::peer_id(), Args::[any()]) -> ignore | {error, term()} | {ok, pid()}

start_link/4

start_link(Mod::module(), Ensemble::ensemble_id(), Id::peer_id(), Args::[any()]) -> ignore | {error, term()} | {ok, pid()}

stop_watching/1

stop_watching(Pid::pid()) -> ok

terminate/3

terminate(Reason::term(), StateName::term(), State::term()) -> ok

tree_info/1

tree_info(Pid) -> any()

update_members/3

update_members(Pid::pid(), Changes::[peer_change()], Timeout::timeout()) -> ok | timeout | {error, [{change_error(), peer_id()}]}

valid_obj_hash/2

valid_obj_hash(ActualHash, KnownHash) -> any()

watch_leader_status/1

watch_leader_status(Pid::pid()) -> ok


Generated by EDoc