anchor.diff:      Metric, Time, Value)
     when is_binary(Value)
          ->
  +    ?DT_WRITE_ENTRY(Metric, Time, mmath_bin:length(Value)),
       <<IndexAsInt:160/integer>> = chash:key_of({Seed, Metric}),
       Idx = chash:next_index(IndexAsInt, CHash),
       Count = byte_size(Value) / ?DATA_SIZE,
  
positive.code:             end,
      case do_put(MSet1#mset{dir=[D, $/, integer_to_list(Idx)]}, Metric, Parts1, Value, CurFiles) of
          CurFiles1 when CurFiles1 =:= CurFiles ->
              MSet1;
          CurFiles1 ->
              CHash1 = chash:update(Idx, CurFiles1, CHash),
              MSet1#mset{chash = CHash1}
      end;
  
  
negative.code: -include_lib("eunit/include/eunit.hrl").
  -compile(export_all).
  -endif.
  
  
  -define(DT_MSTORE, 4401).
  
  -define(DT_ENTRY, 1).
  -define(DT_RETURN, 2).
  
  -define(DT_READ, 1).
  -define(DT_WRITE, 2).
  
  -define(DT_READ_ENTRY(Metric, Time, Size),
          dyntrace:p(?DT_MSTORE, ?DT_READ, ?DT_ENTRY, Metric, Time, Size)).
  
  -define(DT_READ_RETURN,
          dyntrace:p(?DT_MSTORE, ?DT_READ, ?DT_RETURN)).
  
  -define(DT_WRITE_ENTRY(Metric, Time, Size),
          dyntrace:p(?DT_MSTORE, ?DT_WRITE, ?DT_ENTRY, Metric, Time, Size)).
  
  -define(DT_WRITE_RETURN,
          dyntrace:p(?DT_MSTORE, ?DT_WRITE, ?DT_RETURN)).
  
  
  
  
  -record(mstore, {name, file, offset, size, index=gb_trees:empty(), next=0}).
  -record(mset, {size, chash, dir, seed, metrics=gb_sets:new()}).
  