anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
   
   -record(state, {
  +	  connection_state,
           adapter, 
           read_connection, 
           write_connection, 
  
positive.code: handle_call(state, _From, State) ->
      {reply, State, State}.
  
  handle_cast(_Request, State) ->
      {noreply, State}.
  
  terminate(_Reason, State) ->
      Adapter = State#state.adapter,
      terminate_connections(Adapter, State#state.read_connection, State#state.write_connection),
      lists:map(fun({A, RC, WC}) -> terminate_connections(A, RC, WC) end, State#state.shards).
  
negative.code:     CacheEnable = proplists:get_value(cache_enable, Options, false),
      CacheTTL = proplists:get_value(cache_exp_time, Options, 60),
      process_flag(trap_exit, true),
      gen_server:cast(self(), {try_connect, Options}),
      {ok, #state{connection_state = connecting,
  		adapter = Adapter,
  		cache_enable = CacheEnable,
  		cache_ttl = CacheTTL, cache_prefix = db }}.
  
  handle_call(_Anything, _Anyone, State) when State#state.connection_state /= connected ->
      {reply, db_connection_down, State};
  
  handle_call({find, Key}, From, #state{ cache_enable = true, cache_prefix = Prefix } = State) ->
      case boss_cache:get(Prefix, Key) of
  