anchor.diff:      %            Recovered :: [object_location()],
       %            Update :: rep_update(),
       %            Size :: 'undefined' | non_neg_integer(),
  -    %            Rebalance :: rebalance()}
  +    %            Rebalance :: rebalance(),
  +    %            Update_missing :: [node()]}
       _ = ets:new(gc_blobs, [named_table, set, private]),
   
       _ = ets:foldl(
  
positive.code:                          U1 / (U1 + F1) =< U2 / (U2 + F2)
                   end, NS),
      ets:foldl(
        fun({BlobName, Present, Recovered, _, Size, _}, NodeStats) ->
                PresentNodes = [N || {N, _V} <- Present],
                SafePresent = find_usable(BL, PresentNodes),
                SafeRecovered = [N || {N, _V} <- Recovered, not lists:member(N, BL)],
  
negative.code:         [] ->
              % New blob added after GC/RR started.
              [];
          [{_, P, R, noupdate, _, _, _}] ->
              usable_locations(S, BlobName, P ++ R, []);
          [{_, P, R, {update, NewUrls}, _, _, _}] ->
              usable_locations(S, BlobName, P ++ R, NewUrls)
      end.
  
  