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:                     {intervals:empty(), []};
                  FirstKey ->
                      %ct:pal("first key: ~.0p~n", [FirstKey]),
                      {Next, Chunk} =
                          get_chunk_inner(DB, ets:next(ETSDB, FirstKey), FirstKey,
                                          Interval, ChunkSize - 1, [get_entry_(DB, FirstKey)]),
                      case Next of
                          '$end_of_table' ->
                              {intervals:empty(), Chunk};
  
negative.code:     Next = ETS_next(ETSDB, Current),
      get_split_key_inner(DB, Next, RealStart, TargetLoad - 1, Current, ETS_first, ETS_next).
  
  -spec delete_chunk(DB::db(), Interval::intervals:interval(), ChunkSize::pos_integer() | all)
          -> {intervals:interval(), db()}.
  delete_chunk(DB, Interval, ChunkSize) -> delete_chunk_(DB, Interval, ChunkSize).
  
  -spec delete_chunk_(DB::db_t(), Interval::intervals:interval(), ChunkSize::pos_integer() | all)
          -> {intervals:interval(), db_t()}.
  delete_chunk_(DB, Interval, ChunkSize) ->
      {Next, Chunk} = get_chunk_(DB, Interval, fun(_) -> true end, fun db_entry:get_key/1, ChunkSize),
      DB2 = lists:foldl(fun(Key, DB1) -> delete_entry_at_key(DB1, Key) end, DB, Chunk),
      {Next, DB2}.
  