anchor.diff:              bulkowner:issue_bulk_owner(NewId, intervals:all(), Msg),
               Leader1 = check_timeslots(Leader),
               broadcast_values(Leader, Leader1),
  -            {AllNodes, Leader1#state{id = NewId}}
  +            {AllNodes, Leader1#state{id = NewId}, BenchPid, IgnBenchT}
       end;
   
   on({bulkowner, deliver, Id, Range, {gather_stats, SourcePid}, Parents} = _Msg, State) ->
  
positive.code:     monitor:proc_set_value(
        ?MODULE, 'read_read', rrd:create(60 * 1000000, 1, {timing_with_hist, ms})).
  
  -spec run_bench() -> ok.
  run_bench() ->
      Key1 = randoms:getRandomString(),
      Key2 = randoms:getRandomString(),
      ReqList = [{read, Key1}, {read, Key2}, {commit}],
      {TimeInUs, _Result} = util:tc(fun api_tx:req_list/1, [ReqList]),
      monitor:proc_set_value(?MODULE, 'read_read',
                             fun(Old) -> rrd:add_now(TimeInUs / 1000, Old) end).
  
  -spec init_system_stats() -> ok.
  init_system_stats() ->
  
negative.code: get_bench_interval() ->
      config:read(monitor_perf_interval).
  
  %% @doc Timeout interval (in seconds) for a bench request.
  %%      NOTE: this must be smaller than get_bench_interval()!
  -spec get_bench_timeout_interval() -> non_neg_integer().
  get_bench_timeout_interval() ->
      get_bench_interval() div 2.
  
  %% @doc Gets the interval of executing a broadcast gathering all nodes' stats
  %%      (in seconds).
  -spec get_gather_interval() -> pos_integer().
  