anchor.diff:                   get_meta(key,?CHSTATE{meta=
                               merge_meta(Ring2?CHSTATE.meta,
                                          Ring1?CHSTATE.meta)})).
  +
  +metadata_remove_test() ->
  +    Ring0 = fresh(2, node()),
  +    Ring1 = update_meta(key,val,Ring0),
  +    timer:sleep(1001), % ensure that lastmod is at least one second later
  +    Ring2 = remove_meta(key,Ring1),
  +    ?assertEqual(undefined, get_meta(key, Ring2)),
  +    ?assertEqual(undefined, get_meta(key, ?CHSTATE{meta=merge_meta(Ring1?CHSTATE.meta, Ring2?CHSTATE.meta)})),
  +    ?assertEqual(undefined, get_meta(key, ?CHSTATE{meta=merge_meta(Ring2?CHSTATE.meta, Ring1?CHSTATE.meta)})).
  +
   rename_test() ->
       Ring0 = fresh(2, node()),
       Ring = rename_node(Ring0, node(), 'new@new'),
  
positive.code: get_meta(Key, State) -> 
      case dict:find(Key, State?CHSTATE.meta) of
          error -> undefined;
          {ok, M} -> {ok, M#meta_entry.value}
      end.
  
  
negative.code:        true ->
              State
      end.
  
  %% @doc Logical delete of a key in the cluster metadata dict
  -spec remove_meta(Key :: term(), State :: chstate()) -> chstate().
  remove_meta(Key, State) ->
      update_meta(Key, '$removed', State).
  
  %% @doc Return the current claimant.
  -spec claimant(State :: chstate()) -> node().
  