Skip to content

Instantly share code, notes, and snippets.

@angrycub
Created July 30, 2014 13:03

Revisions

  1. Charlie Voiselle created this gist Jul 30, 2014.
    15 changes: 15 additions & 0 deletions gistfile1.erl
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    Compute_Next = fun(Ring1,Ring2) ->
    Owners1 = riak_core_ring:all_owners(Ring1),
    Owners2 = riak_core_ring:all_owners(Ring2),
    Owners3 = lists:zip(Owners1, Owners2),
    [{Idx, PrevOwner, NewOwner, [], awaiting}
    || {{Idx, PrevOwner}, {Idx, NewOwner}} <- Owners3,
    PrevOwner /= NewOwner]
    end.

    N = app_helper:get_env(riak_core,target_n_val,4),
    {ok,Ring}= riak_core_ring_manager:get_my_ring(),
    NewRing = riak_core_claim:claim(Ring,{riak_core_claim,wants_claim_v3},{riak_core_claim,choose_claim_v3}),
    Next = Compute_Next(Ring,NewRing),
    io:format("Initial Ring:~n~p~n",[riak_core_claim_util:ring_stats(Ring,N)]),
    io:format("After ~p ownership changes:~n~p~n",[length(Next),riak_core_claim_util:ring_stats(NewRing,N)]).