anchor.diff:            (_) ->
                 ok
         end),
  +
  +    ets:new(compaction_daemon, [protected, named_table, set]),
  +
  +    {ok, KVThrottle} = concurrency_throttle:start_link({1, kv_throttle}, undefined),
  +    ets:insert(compaction_daemon, {kv_throttle, KVThrottle}),
   
       CheckInterval = get_check_interval(ns_config:get()),
   
  
positive.code: 
                %% effectful
                ensure_can_view_compact(BucketName, DDocId, Type),
  
                ?log_info("Compacting indexes for ~s", [ViewName]),
                process_flag(trap_exit, true),
  
negative.code:                     NewState
              end
      end.
  
  get_kv_token() ->
      [{_, Pid}] = ets:lookup(compaction_daemon, kv_throttle),
      concurrency_throttle:send_back_when_can_go(Pid, go),
      receive
          {'EXIT', _, Reason} = ExitMsg ->
              ?log_debug("Got exit waiting for token: ~p", [ExitMsg]),
              erlang:exit(Reason);
          go ->
              ok
      end.
  