anchor.diff:      metric_io:close(IO),
       ok.
   
  -do_put(Bucket, Metric, Time, Value, State = #state{tbl = T, ct = CT, io = IO}) ->
  +do_put(Bucket, Metric, Time, Value, State) ->
  +    do_put(Bucket, Metric, Time, Value, State, ?MAX_Q_LEN).
  +
  +do_put(Bucket, Metric, Time, Value, State = #state{tbl = T, ct = CT, io = IO}, Sync) ->
       Len = mmath_bin:length(Value),
       BM = {Bucket, Metric},
       case ets:lookup(T, BM) of
  
positive.code:             k6_bytea:set(Array, 0, Value),
              k6_bytea:set(Array, Len * ?DATA_SIZE, <<0:(?DATA_SIZE * 8 * (CT - Len))>>),
              ets:update_element(T, BM, [{2, Time}, {3, Len}, {4, Time + CT}]),
              metric_io:write(IO, Bucket, Metric, Start, Bin);
          %% In the case the data is already longer then the cache we flush the
          %% cache
          [{BM, Start, Size, _End, Array}]
  
negative.code:         %% cache it this way we prevent overwriting already written data.
          [{BM, _Start, _Size, _End, _V}]
            when Time < _Start ->
              metric_io:write(IO, Bucket, Metric, Time, Value, Sync);
          %% When the Delta of start time and this package is greater then the
          %% cache time we flush the cache and start a new cache with a new
          %% package
  