anchor.diff:              docs_left_updater_loop(Parent)
       end.
   
  +get_docs_estimate(BucketName, #move_state{vbucket = VBucket,
  +                                          before_chain = [MasterNode|_],
  +                                          repl_type = tap,
  +                                          stats = RStats}) ->
  +    TapNames = [S#replica_building_stats.tap_name || S <- RStats],
  +    janitor_agent:get_tap_docs_estimate_many_taps(BucketName, MasterNode, VBucket, TapNames);
  +get_docs_estimate(BucketName, #move_state{vbucket = VBucket,
  +                                          before_chain = [MasterNode|_],
  +                                          repl_type = upr,
  +                                          stats = RStats}) ->
  +    ReplicaNodes = [S#replica_building_stats.node || S <- RStats],
  +    janitor_agent:get_upr_docs_estimate(BucketName, MasterNode, VBucket, ReplicaNodes).
  +
   update_docs_left_for_move(Parent, BucketName,
                             #move_state{vbucket = VBucket,
  -                                      before_chain = [MasterNode|_],
  -                                      stats = RStats}) ->
  -    TapNames = [S#replica_building_stats.tap_name || S <- RStats],
  -    try janitor_agent:get_tap_docs_estimate_many_taps(BucketName, MasterNode, VBucket, TapNames) of
  +                                      stats = RStats} = MoveState) ->
  +    try get_docs_estimate(BucketName, MoveState) of
           NewLefts ->
               Stuff =
                   lists:flatmap(
  
positive.code:         keygroup_sorted(lists:merge(lists:sort(BuildDestinations0),
                                      lists:sort(BuildDestinations1))),
  
      SomeEstimates0 = misc:parallel_map(
                         fun ({Node, VBs}) ->
                                 {ok, Estimates} = janitor_agent:get_mass_tap_docs_estimate(BucketName, Node, VBs),
                                 [{{Node, VB}, {VBEstimate, VBChkItems}} ||
                                     {VB, {VBEstimate, VBChkItems, _}} <- lists:zip(VBs, Estimates)]
                         end, BuildDestinations, infinity),
  
  
  
negative.code:              #move_state{vbucket = VB,
                           before_chain = ChainBefore,
                           after_chain = ChainAfter,
                           repl_type = ReplType,
                           stats = RBStats}
           end || {VB, [MasterNode|_] = ChainBefore, ChainAfter} <- Diff],
  
  