anchor.diff:      ?ETS:insert(DB, Data),
       DB.
   
  -%% @doc returns all keys (and removes them from the db) which belong 
  +%% @doc returns all keys (and removes them from the db) which belong
   %%      to a new node with id HisKey
   split_data(DB, MyKey, HisKey) ->
       F = fun (KV = {Key, _}, HisList) ->
                   case util:is_between(HisKey, Key, MyKey) of
  -                    true ->
  -                        HisList;
  -                    false ->
  -                        [KV | HisList]
  +                    true -> HisList;
  +                    false -> [KV | HisList]
                   end
           end,
       HisList = ?ETS:foldl(F, [], DB),
  
positive.code: %% @doc get keys and versions in a range
  get_range_with_version(DB, Interval) ->
      F = fun ({Key, {Value, WriteLock, ReadLock, Version}}, Data) ->
                  case intervals:in(Key, Interval) andalso Value =/= empty_val of
                      true ->
                          [{Key, Value, WriteLock, ReadLock, Version} | Data];
                      false ->
                          Data
                  end
          end,
      ?ETS:foldl(F, [], DB).
  
  get_range_only_with_version(DB, Interval) ->
      F = fun ({Key, {Value, WLock, _, Version}}, Data) ->
                  case WLock == false andalso intervals:in(Key, Interval) andalso Value =/= empty_val of
                      true ->
                          [{Key, Value, Version} | Data];
                      false ->
                          Data
                  end
          end,
      ?ETS:foldl(F, [], DB).
  
negative.code:     Res = case ?ETS:lookup(DB, Key) of
                [{Key, {Value, _WriteLock, _ReadLock, Version}}] ->
                    {ok, Value, Version};
                [] -> {ok, empty_val, -1}
            end,
  %%     Stop = erlang:now(),
  %%     Span = timer:now_diff(Stop, Start),
  