anchor.diff:                                      metric_io:delete(IO, Bucket, Exp),
                                       SAcc1
                               end
  -                    end, State, btrie:fetch_keys(Bs)),
  +                    end, State1, btrie:fetch_keys(Bs)),
       lager:info("[vaccum] Finalized vaccum for partution ~p.", [P]),
  -    {ok, State1};
  +    {ok, State2};
   
   handle_info({'EXIT', IO, normal}, State = #state{io = IO}) ->
       {ok, State};
  
positive.code:             node = node(),
              tbl = ets:new(P, [public, ordered_set]),
              io = IO,
              ct = CT
             },
       [FoldWorkerPool]}.
  
negative.code: reply(Reply, {_, ReqID, _} = Sender, #state{node=N, partition=P}) ->
      riak_core_vnode:reply(Sender, {ok, ReqID, {P, N}, Reply}).
  
  %% The timestamp is primarily used by the vacuum to remove data in accordance
  %% with the bucket lifetime. The timestamp is only updated once per 
  %% vacuum cycle, and may not accurately reflect the current system time.
  %% Although more performant than the monotonic `now()', there are nevertheless
  %% performance penalties for calling this too frequently. Also, updating the
  %% time on a self tick message may prevent the VNode being marked as idle by
  %% riak core.
  timestamp() ->
      erlang:system_time(milli_seconds).
  
  
  valid_ts(TS, Bucket, State) ->
      case expiry(Bucket, State) of
          %% TODO:
  