anchor.diff:                                   {join, ?MODULE, '_',
                                     {create_join2, SelectedKey, SourcePid, Conn}}),
               GossipPid = pid_groups:get_my(gossip),
  +            %% GossipPid = pid_groups:get_my(gossip2),
               Msg = {get_values_best, SPid},
  +            %% Msg = {get_values_best, {gossip_load, default}, SPid},
               ?TRACE_SEND(GossipPid, Msg),
               _ = comm:send_local_after(100, GossipPid, Msg),
               ok
  
positive.code:         {get_samples, SourcePid::comm:mypid(), Conn::dht_node_join:connection()} |
              {create_join2, SelectedKey::?RT:key(), SourcePid::comm:mypid(), Conn::dht_node_join:connection()} |
              {create_join3, SelectedKey::?RT:key(), SourcePid::comm:mypid(), BestValues::gossip_state:values(), Conn::dht_node_join:connection()},
          DhtNodeState::dht_node_state:state()) -> dht_node_state:state().
  process_join_msg({gossip_get_values_best_response, BestValues},
                   {get_samples, SourcePid, Conn}, DhtNodeState) ->
      MinSamples = conf_get_min_number_of_samples(),
      Samples = case gossip_state:get(BestValues, size) of
                    unknown -> MinSamples;
                    % always round up:
                    Size    -> erlang:max(util:ceil((util:log2(Size))), MinSamples)
                end, 
      comm:send(SourcePid, {join, get_number_of_samples, Samples, Conn}),
      DhtNodeState;
  process_join_msg({gossip_get_values_best_response, BestValues},
  
negative.code: 
  -type custom_message() ::
            {gossip_get_values_best_response, gossip_state:values()} |
            %% {gossip_get_values_best_response, gossip_load:load_info()} |
            {get_split_key_response, SplitKey::{?RT:key(), TakenLoad::non_neg_integer()}}.
  
  %% @doc Gets the number of IDs to sample during join.
  