anchor.diff:  -type db_t() :: {Table::tid() | atom(), SubscrTable::tid() | atom()}.
   
   % TODO: move these functions to the behaviour and implement them in the other DBs!
  --export([get_chunk/3, delete_chunk/3, get_split_key/4]).
  +-export([get_chunk/3, get_chunk/5, delete_chunk/3, get_split_key/4]).
   
   % Note: must include db_beh.hrl AFTER the type definitions for erlang < R13B04
   % to work.
  
positive.code: %%      ""wrapping around", i.e. its begin is larger than its end.
  %%      Returns the chunk and the remaining interval for which the DB may still
  %%      have data (a subset of I).
  %%      Precond: Interval is a subset of the range of the dht_node and thus, in
  %%      particular, continuous
  -spec get_chunk(DB::db(), Interval::intervals:interval(), ChunkSize::pos_integer()) ->
      {intervals:interval(), db_as_list()}.
  get_chunk(DB, Interval, ChunkSize) -> get_chunk_(DB, Interval, ChunkSize).
  
  -spec get_chunk_(DB::db_t(), Interval::intervals:interval(), ChunkSize::pos_integer()) ->
      {intervals:interval(), db_as_list()}.
  get_chunk_({ETSDB, _Subscr} = DB, Interval, ChunkSize) ->
      % assert ChunkSize > 0, see ChunkSize type
      case get_load_(DB) of
          0 -> {intervals:empty(), []};
  
negative.code:     set_entry_(State, Entry).
  
  %% @doc Removes all values with the given entry's key from the DB.
  delete_entry_(State, Entry) ->
      Key = db_entry:get_key(Entry),
      delete_entry_at_key(State, Key).
  
  delete_entry_at_key(State = {DB, _Subscr}, Key) ->
      ets:delete(DB, Key),
      call_subscribers(State, {delete, Key}),
      State.
  