anchor.diff:                   {ok, any(), state()} |
                    {error, not_found, state()} |
                    {error, term(), state()}.
  -get(Bucket, Key, #state{ref=Ref}=State) ->
  -    BitcaskKey = term_to_binary({Bucket, Key}),
  +get(Bucket, Key, #state{ref=Ref, key_vsn=KVers}=State) ->
  +    BitcaskKey = make_bk(KVers, Bucket, Key),
       case bitcask:get(Ref, BitcaskKey) of
           {ok, Value} ->
               {ok, Value, State};
  
positive.code: capabilities(_, _) ->
      {ok, ?CAPABILITIES}.
  
  %% @doc Start the bitcask backend
  -spec start(integer(), config()) -> {ok, state()} | {error, term()}.
  start(Partition, Config) ->
      %% Get the data root directory
      case app_helper:get_prop_or_env(data_root, Config, bitcask) of
          undefined ->
              lager:error("Failed to create bitcask dir: data_root is not set"),
  
negative.code: -define(API_VERSION, 1).
  -define(CAPABILITIES, [async_fold,size]).
  
  %% must not be 131, otherwise will match t2b in error
  %% yes, I know that this is horrible.
  -define(VERSION_1, 1).
  -define(VERSION_BYTE, ?VERSION_1).
  -define(CURRENT_KEY_TRANS, fun key_transform_to_1/1).
  
  -record(state, {ref :: reference(),
                  data_dir :: string(),
                  opts :: [{atom(), term()}],
                  partition :: integer(),
                  root :: string(),
                  key_vsn :: integer()}).
  
  -type state() :: #state{}.
  -type config() :: [{atom(), term()}].
  