anchor.diff:  
   %% @doc Generate RING for this process
   %% @private
  -gen_routing_table(Version, NumOfReplicas, NumOfAwarenessL2, Members) ->
  +gen_routing_table(TargetRing,_NumOfReplicas,_NumOfAwarenessL2,_Members) when TargetRing /= ?SYNC_MODE_CUR_RING,
  +                                                                             TargetRing /= ?SYNC_MODE_PREV_RING ->
  +    {error, invalid_target_ring};
  +gen_routing_table(_TargetRing,_NumOfReplicas,_NumOfAwarenessL2,[]) ->
  +    {error, member_empty};
  +gen_routing_table(TargetRing, NumOfReplicas, NumOfAwarenessL2, Members) ->
       %% Retrieve ring from local's master [etc|mnesia]
  -    ETS_Tbl = case Version of
  -                  ?SYNC_MODE_CUR_RING  -> {ets, ?CUR_RING_TABLE};
  -                  ?SYNC_MODE_PREV_RING -> {ets, ?PREV_RING_TABLE};
  -                  _ ->
  -                      {ets, ?PREV_RING_TABLE}
  -              end,
  -    {ok, CurRing} = leo_redundant_manager_api:get_ring(Version),
  +    Tbl = case TargetRing of
  +              ?SYNC_MODE_CUR_RING  -> leo_redundant_manager_api:table_info(?VER_CURRENT);
  +              ?SYNC_MODE_PREV_RING -> leo_redundant_manager_api:table_info(?VER_PREV)
  +          end,
  +    {ok, CurRing} = leo_redundant_manager_api:get_ring(TargetRing),
       Checksum  = erlang:crc32(term_to_binary(CurRing)),
       RingSize  = length(CurRing),
       GroupSize = leo_math:ceiling(RingSize / ?DEF_NUM_OF_DIV),
   
  +    %% Retrieve redundancies by addr-id
       {_,_,Ring,_,_} =
           lists:foldl(fun({AddrId, _Node},
                           {Id, GId, IdxAcc, TblAcc, StAddrId}) ->
  -                            Ret = redundancies(ETS_Tbl, AddrId,
  +                            Ret = redundancies(Tbl, AddrId,
                                                  NumOfReplicas, NumOfAwarenessL2, Members),
                               gen_routing_table_1(Ret, GroupSize,
                                                   Id, AddrId, GId, IdxAcc, TblAcc, StAddrId)
  
positive.code:                         L2 = leo_misc:get_value(?PROP_L2, Options, 0),
  
                          {ok, {Checksum, RingGroupList}} =
                              gen_routing_table(Version, N, L2, Members),
                          State#state{cur = #ring_info{checksum = Checksum,
                                                       ring_group_list = RingGroupList}};
                      _ ->
  
negative.code:     {reply, {error, invalid_table}, State};
  
  handle_call({force_sync, Tbl},_From, State) ->
      TargetRing = case Tbl of
                       ?CUR_RING_TABLE ->
                           ?SYNC_MODE_CUR_RING;
                       ?PREV_RING_TABLE ->
                           ?SYNC_MODE_PREV_RING
                   end,
      NewState =
          case leo_redundant_manager_table_member:find_all() of
              {ok, Members} ->
  