anchor.diff:      gen_server:cast(self(), {rr_blob, End}),
       0;
   rereplicate_blob(S, BlobName) ->
  -    [{_, Present, Recovered, _, _}] = ets:lookup(gc_blobs, BlobName),
  +    [{_, Present, Recovered, _, _, _}] = ets:lookup(gc_blobs, BlobName),
       {FinalReps, Reqs} = rereplicate_blob(S, BlobName, Present, Recovered, S#state.blobk),
       ets:update_element(gc_blobs, BlobName, {4, FinalReps}),
       Next = ets:next(gc_blobs, BlobName),
  
positive.code:                             "over utilized nodes: ~p, "
                              "under utilized nodes: ~p",
                              [NewDiskUsage, length(NewOverused), length(NewUnderused)]),
  
                   lager:info("GC: entering rr_blobs phase"),
                   % Start the replicator process which will
  
negative.code:     insert_nodestats({N, {F, U}}, NodeStats, [{N2, {F2, U2}} | Acc]);
  insert_nodestats(NodeInfo, NodeStats, Acc) ->
      lists:reverse(Acc) ++ [NodeInfo | NodeStats].
  
  -spec rebalance([node()], [node()], [node_info()]) -> ok.
  rebalance(Overused, BL, NodeStats) ->
      RebalanceStats =
         [{N, {F + U, 0}} || {N, {F, U}} <- NodeStats, lists:member(N, Overused)],
      ets:foldl(
        fun({BlobName, Present, Recovered, Update, Size, _}, Stats) ->
                PresentNodes = [N || {N, _V} <- Present],
                SafePresent = find_usable(BL, PresentNodes),
                SafeRecovered = [N || {N, _V} <- Recovered, not lists:member(N, BL)],
                OverusedPresent =
                   [N || N <- SafePresent ++ SafeRecovered, lists:member(N, Overused)],
                case {Update, length(OverusedPresent)} of
                    {noupdate, NumPresent}
                      when NumPresent > 0 ->
                        PresentStats =
                           [{N, S} || {N, S} <- Stats, lists:member(N, OverusedPresent)],
                        [{N, {Total, Balanced}} | _Nodes] =
                           lists:sort(fun({_N1, {_T1, B1}}, {_N2, {_T2, B2}}) ->
                                              B1 =< B2
                                      end, PresentStats),
                        case (Balanced / Total) > ?GC_BALANCE_THRESHOLD of
                            true -> Stats;
                            false ->
                                ets:update_element(gc_blobs, BlobName, {6, rebalance}),
                                lists:keyreplace(N, 1, Stats, {N, {Total, Balanced + Size}})
                        end;
                    _ -> Stats
                end
        end, RebalanceStats, gc_blobs),
    ok.
  
  -spec check_is_orphan(state(), object_type(), object_name(), node(), volume_name())
                       -> {ok, boolean() | unknown}.
  