anchor.diff:  %% @private
   %% @doc
   %% Decides if the node is overloaded from DNS point of view.
  +%% NOTE: Currently this is not used, as tests have shown that excluding
  +%% nodes in DNS when there are heavy loaded in fact decreases the whole system throughput.
   %% @end
   %%--------------------------------------------------------------------
   -spec overloaded_for_dns(NodeState :: #node_state{}, MinLoadForDNS :: float()) -> boolean().
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  -spec advices_for_dispatchers(NodeStates :: [#node_state{}], LBState :: #load_balancing_state{} | undefined) ->
      [{node(), #dispatcher_lb_advice{}}].
  advices_for_dispatchers(NodeStates, LBState) ->
      ExtraLoads = case LBState of
                       undefined ->
  
negative.code: %% based on node states of all nodes. The list must not be empty.
  %% @end
  %%--------------------------------------------------------------------
  -spec advices_for_dnses(NodeStates :: [#node_state{}], LBState :: #load_balancing_state{} | undefined) ->
      {[{node(), #dispatcher_lb_advice{}}], #load_balancing_state{}}.
  advices_for_dnses(NodeStates, LBState) ->
      ExtraLoads = case LBState of
                       undefined ->
                           [];
                       #load_balancing_state{expected_extra_load = EEL} ->
                           EEL
                   end,
      NodesAndIPs = [{NodeState#node_state.node, NodeState#node_state.ip_addr} || NodeState <- NodeStates],
      LoadsForDNS = lists:map(
          fun(NodeState) ->
              L = load_for_dns(NodeState),
              ExtraLoad = proplists:get_value(NodeState#node_state.node, ExtraLoads, 0.0),
              L * (1.0 - ExtraLoad)
          end, NodeStates),
      MinLoadForDNS = lists:min(LoadsForDNS),
      LoadsAndNodes = lists:zip(LoadsForDNS, NodesAndIPs),
      % Calculate how often should given nodes appear in the first row in DNS
  