anchor.diff:                                              {join, ?MODULE, '_',
                                                {create_join3, SelectedKey, SourcePid, Conn}}),
                          DBCache = pid_groups:get_my(dht_node_db_cache),
  -                       
  +
                          Msg = {get_split_key, dht_node_state:get(DhtNodeState, db),
                                 dht_node_state:get(DhtNodeState, full_range), MyPredId, MyNodeId,
                                 TargetLoad, forward, SPid},
  
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:                                  {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(GossipPid, Msg);
          _ ->
  