anchor.diff:  %%      Called by the gossip module at the beginning of every cycle. <br/>
   %%      The selected exchange data is sent back to the gossip module as a message
   %%      of the form {selected_data, Instance, ExchangeData}.
  +%%      gossip_trigger -> select_data() is equivalent to cy_shuffle in the old
  +%%      cyclon module.
   -spec select_data(State::state()) -> {ok, state()}.
  -select_data(State) ->
  -    %% cy_shuffle <=> gossip_trigger -> select_data()
  -    {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),
  +                %io:format("~p",[length(ForSend)]),
  +                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 and select reply data. <br/>
  
positive.code: rm_send_changes(Pid, cyclon, _OldNeighbors, NewNeighbors, _Reason) ->
      comm:send_local(Pid, {cb_reply, {gossip_cyclon, default}, {rm_changed, nodelist:node(NewNeighbors)}}).
  
  
  
negative.code:     %% replaces the reference to self's dht node with NewNode
      {ok, State};
  handle_msg({get_ages, _Pid}, State) ->
      ?TRACE_DEBUG("get_ages", []),
      %% msg from admin:print_ages()
      {ok, State};
  handle_msg({get_subset_rand, _N, _Pid}, State) ->
      ?TRACE_DEBUG("get_subset_rand", []),
      %% msg from get_subset_random() (api)
      %% also directly requested from api_vm:get_other_vms() (change?)
      {ok, State};
  handle_msg({get_node_details_response, _NodeDetails}, State) ->
      ?TRACE_DEBUG("get_node_details_response", []),
      %% Response to a get_node_details message from self (via request_node_details()).
      %% The node details are used to possibly update Me and the succ and pred are
      %% possibly used to populate the cache.
  