anchor.diff:  
       NewState0#state{compaction_start_ts=undefined}.
   
  -maybe_kill_scheduled_compaction(#state{scheduled_compaction_tref=TRef} = State) ->
  -    timer:cancel(TRef),
  -    receive
  -        compact ->
  -            ok
  -    after 0 ->
  -            ok
  -    end,
  -
  -    State#state{scheduled_compaction_tref=undefined}.
  -
   now_utc_seconds() ->
       calendar:datetime_to_gregorian_seconds(erlang:universaltime()).
   
  
positive.code: code_change(_OldVsn, StateName, State, _Extra) ->
      {ok, StateName, State}.
  
  idle(pause, _From, State) ->
      {reply, ok, paused, maybe_kill_scheduled_compaction(State)};
  idle(unpause, _From, State) ->
      {reply, ok, idle, State}.
  
  compacting(pause, _From, #state{compactor_pid=Compactor} = State) ->
      exit(Compactor, shutdown),
      receive
          {'EXIT', Compactor, normal} ->
              ok;
          {'EXIT', Compactor, shutdown} ->
              ok;
          {'EXIT', Compactor, Reason} ->
              ?log_error("Compactor ~p exited with non-normal reason: ~p",
                         [Compactor, Reason])
      end,
  
      {reply, ok, paused, State#state{compactor_pid=undefined,
                                      compactor_config=undefined,
                                      compaction_start_ts=undefined}};
  compacting(unpause, _From, State) ->
      {reply, ok, compacting, State}.
  
  paused(pause, _From, State) ->
      {reply, ok, paused, State};
  paused(unpause, _From, State) ->
      self() ! compact,
      {reply, ok, idle, State}.
  
  %% Internal functions
  -spec spawn_bucket_compactor(binary(), {#config{}, list()}) -> pid().
  spawn_bucket_compactor(BucketName, Configs) ->
  
negative.code: %% API
  start_link() ->
      gen_fsm:start_link({local, ?MODULE}, ?MODULE, [], []).
  
  force_compact_bucket(Bucket) ->
      BucketBin = list_to_binary(Bucket),
  