barrel_p2p_leader (barrel_p2p v0.1.0)

View Source

Summary

Types

fence/0

-type fence() :: non_neg_integer().

name/0

-type name() :: term().

Functions

apply_full_sync(Cands, Fences)

-spec apply_full_sync(barrel_p2p_ormap:ormap(), #{name() => barrel_p2p_hlc:timestamp()}) -> ok.

candidates(Name)

-spec candidates(name()) -> [node()].

fence(Name)

-spec fence(name()) -> {ok, fence()} | {error, not_leader}.

get_state()

-spec get_state() -> {barrel_p2p_ormap:ormap(), #{name() => barrel_p2p_hlc:timestamp()}}.

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_info(Info, State)

high_water(Name)

-spec high_water(name()) -> fence() | undefined.

init(_)

is_leader(Name)

-spec is_leader(name()) -> boolean().

lead(Name)

-spec lead(name()) -> {ok, {leader, fence()}} | {ok, follower} | {error, term()}.

lead(Name, Opts)

-spec lead(name(), map()) -> {ok, {leader, fence()}} | {ok, follower} | {error, term()}.

leader(Name)

-spec leader(name()) -> {ok, node(), pid()} | {error, no_leader}.

merge_fence(Name, Fence)

-spec merge_fence(name(), barrel_p2p_hlc:timestamp()) -> ok.

merge_remote(Delta)

-spec merge_remote(barrel_p2p_ormap:ormap()) -> ok.

remove_node(Node)

-spec remove_node(node()) -> ok.

replica_apply_full_sync(Inst, _)

replica_full_sync_snapshot(Inst)

replica_merge_custom(Inst, Other)

replica_merge_delta(Inst, Delta)

replica_remove_node(Inst, Node)

resign(Name)

-spec resign(name()) -> ok.

start_link()

terminate(Reason, State)