anchor.diff:      VNode:aae_repair(Bucket, Key),
       %% Force vnodes to update AAE tree in case read repair wasn't triggered
       riak_core_aae_vnode:rehash(VNode:master(), [LocalVN, RemoteVN], Bucket, Key),
  +    timer:sleep(riak_core_entropy_manager:get_aae_throttle()),
       ok.
   
   %% @private
  
positive.code:                 local_tree  :: pid(),
                  remote_tree :: pid(),
                  built       :: non_neg_integer(),
                  timeout     :: pos_integer(),
                  vnode       :: atom(),
                  service     :: atom()
                 }).
  
  %% Per state transition timeout used by certain transitions
  -define(DEFAULT_ACTION_TIMEOUT, 300000). %% 5 minutes
  
  %% Use occasional calls to disk_log:log() for some backpressure periodically
  -define(LOG_BATCH_SIZE, 5000).
  
negative.code:                               end, 0, ReadLog),
              disk_log:close(ReadLog),
              if Count == FoldRes ->
                      Complete = true,
                      ok;
                 true ->
                      lager:error("~s:key_exchange: Count ~p /= FoldRes ~p\n",
                                  [?MODULE, Count, FoldRes]),
                      send_exchange_status(failed, State),
                      Complete = false
              end,
              lager:info("Repaired ~b keys during active anti-entropy exchange "
                         "of ~p between ~p and ~p",
                         [Count, IndexN, LocalVN, RemoteVN])
      end,
      [exchange_complete(Service, LocalVN, RemoteVN, IndexN, Count) || Complete],
      _ = file:delete(LogFile1),
      _ = file:delete(LogFile2),
      {stop, normal, State}.
  