anchor.diff:  %%-------------------------------------------------------------------
   -spec replica_deletion_predicate(autocleaning:run_id()) -> any().
   replica_deletion_predicate(ReportId) ->
  -    {ARId, _BatchNum} = from_batch_id(ReportId),
  +    {AutocleaningRunId, _BatchNum} = unpack_batch_id(ReportId),
       {ok, #{
           released_bytes := Released,
           bytes_to_release := ToRelease
  -    }} = autocleaning_api:get_run_report(ARId),
  +    }} = autocleaning_api:get_run_report(AutocleaningRunId),
       Released < ToRelease.
   
   %%-------------------------------------------------------------------
  
positive.code: }) when BytesToRelease =< ReleasedBytes ->
  
      lists:foreach(fun(BatchNum) ->
          replica_deletion_master:cancel(to_batch_id(ARId, BatchNum), SpaceId)
      end, maps:keys(BatchesCounters)),
  
      State#state{
  
negative.code: ) ->
      notify_processed_file(SpaceId,ReportId);
  process_replica_deletion_result(Error, SpaceId, FileUuid, ReportId) ->
      {ARId, _BatchNum} = unpack_batch_id(ReportId),
      ?error("Error ~p occured during auto-cleanig of file ~p in run ~p",
          [Error, FileUuid, ARId]),
      notify_processed_file(SpaceId,ReportId).
  
  -spec pack_batch_id(autocleaning:run_id(), non_neg_integer()) -> batch_id().
  pack_batch_id(AutocleaningRunId, Int) ->
      <<AutocleaningRunId/binary, ?ID_SEPARATOR/binary, (integer_to_binary(Int))/binary>>.
  
  -spec unpack_batch_id(batch_id()) -> {autocleaning:run_id(), non_neg_integer()}.
  unpack_batch_id(BatchId) ->
      [AutocleaningRunId, BatchNum] = binary:split(BatchId, ?ID_SEPARATOR),
      {AutocleaningRunId, binary_to_integer(BatchNum)}.
  
  %%%===================================================================
  %%% gen_server callbacks
  