anchor.diff:  
   start_link({MaxConcurrency, Type}, Parent) ->
       {ok, Pid} = gen_server:start_link(?MODULE, {MaxConcurrency, Type, Parent}, []),
  -    ?xdcr_debug("concurrency throttle started: ~p", [Pid]),
  +    ?log_debug("concurrency throttle started: ~p", [Pid]),
       {ok, Pid}.
   
   send_back_when_can_go(Server, Signal) ->
  
positive.code:             NewActivePool = dict:store(WaitingPid, TargetNode, ActivePool),
              NewTargetLoad = dict:update_counter(TargetNode, 1, TargetLoad),
  
              ?xdcr_debug("schedule a waiting rep (pid: ~p, target node: ~p) to be active "
                          "(active reps: ~p, waiting reps: ~p)",
                          [WaitingPid, TargetNode, dict:size(NewActivePool), dict:size(NewWaitingPool)]),
  
              WaitingPid ! Signal,
              NewState = State#concurrency_throttle_state{
  
negative.code: 
      case Reason of
          normal  ->
              ?log_debug("rep ~p to node ~p is done normally, total tokens: ~p, available tokens: ~p,"
                         "(active reps: ~p, waiting reps: ~p)",
                         [Pid, TargetNode,
                          TotalTokens, (AvailTokens + 1),
                          dict:size(NewActivePool), dict:size(WaitingPool)]);
          {Type, _Info} ->
              ?log_debug("rep ~p to node ~p crashed (type: ~p), total tokens: ~p, available tokens: ~p, "
                         "(active reps: ~p, waiting reps: ~p)",
                         [Pid, TargetNode, Type,
                          TotalTokens, (AvailTokens + 1),
                          dict:size(NewActivePool), dict:size(WaitingPool)])
      end,
  
      NewState.
  