anchor.diff:                         [] -> 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),
  
positive.code:                 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) ->
  
negative.code:           end, true, gc_blob_map),
      ets:delete(gc_blob_map),
  
      {UnderusedNodes, OverusedNodes} = find_unstable_nodes(NodeStats),
      Utilization = [{N, ddfs_master:get_utilization_index(Node)} || {N, _} = Node <- NodeStats,
          lists:member(N, OverusedNodes)],
      SortedUtilization = [N || {N, _} <- lists:reverse(lists:keysort(2, Utilization))],
  