anchor.diff:              comm:send_local(DHT_Node, {get_node_details, EnvPid, Details});
           false -> ok
       end.
  -
  
positive.code: -spec select_data(State::state()) -> {ok, state()}.
  select_data({Cache, Node}=State) ->
      ?TRACE_DEBUG("select_data", []),
      NewCache =
          case check_state(State) of
              fail ->
                  Cache;
              _    ->
                  monitor:proc_set_value(?MODULE, 'shuffle',
                                             fun(Old) -> rrd:add_now(1, Old) end),
                  Cache1 = cyclon_cache:inc_age(Cache),
                  {Cache2, NodeQ} = cyclon_cache:pop_oldest_node(Cache1),
                  Subset = cyclon_cache:get_random_subset(shuffle_length() - 1, Cache2),
                  ForSend = cyclon_cache:add_node(Node, 0, Subset),
                  Pid = pid_groups:get_my(gossip),
                  comm:send_local(Pid, {selected_peer, instance(), {cy_cache, [NodeQ]}}),
                  comm:send_local(Pid, {selected_data, instance(), ForSend}),
                  Cache2
          end,
      {ok, {NewCache, Node}}.
  
  
  %% @doc Process the data from the requestor (P) and select reply data (at Q). <br/>
  
negative.code:     ?TRACE_DEBUG("get_node_details_response", []),
      case cyclon_cache:size(OldCache) =< 2 of
          true  ->
              ?TRACE_DEBUG("get_node_details_response: true", []),
              Pred = node_details:get(NodeDetails, pred),
              Succ = node_details:get(NodeDetails, succ),
              NewCache =
  