anchor.diff:                  string:to_float(disco:get_setting("DDFS_GC_BALANCE_THRESHOLD")));
           false -> ?GC_BALANCE_THRESHOLD
       end.
  -
  --spec find_unstable_nodes(underused | overused, [node_info()], non_neg_integer())
  -                         -> [node()].
  -find_unstable_nodes(underused, NodeStats, AvgUsage) ->
  -    Threshold = get_balance_threshold(),
  -    [N || {N, _} = Node <- NodeStats, ddfs_master:get_utilization_index(Node) < AvgUsage - Threshold];
  -find_unstable_nodes(overused, NodeStats, AvgUsage) ->
  -    Threshold = get_balance_threshold(),
  -    [N || {N, _} = Node <- NodeStats, ddfs_master:get_utilization_index(Node) > AvgUsage + Threshold].
   
   -spec update_nodestats(node(), gc_run_stats(), [node_info()]) -> [node_info()].
   update_nodestats(Node, {Tags, Blobs}, NodeStats) ->
  
positive.code:                        [] -> undefined;
                         [N | _] -> N
                     end,
      lager:info("GC: average disk utilization: ~p, "
                 "over utilized nodes: ~p, "
                 "under utilized nodes: ~p",
                 [DiskUsage, length(OverusedNodes), length(UnderusedNodes)]),
  
      lager:info("GC: entering gc phase"),
      OverusedPeer = find_peer(Peers, MostOverused),
  
negative.code:                  % Update stats.
                   print_gc_stats(all, NewStats),
                   ddfs_master:update_gc_stats(NewStats),
                   find_unstable_nodes(NewNS),
                   FutureNS = estimate_rr_blobs(S#state{nodestats = NewNS}),
                   {NewUnderused , NewOverused} = find_unstable_nodes(FutureNS),
                   ok = case NewOverused =/= [] of
                          true -> rebalance(NewOverused, BL, FutureNS);
                          false -> ok
  