anchor.diff:      DbName = mem3:dbname(ShardDbName),
       gen_server:cast(?OPENER, {evict, DbName, DDocIds}).
   
  +
  +recover({DbName, validation_funs}) ->
  +    {ok, DDocs} = fabric:design_docs(mem3:dbname(DbName)),
  +    Funs = lists:flatmap(fun(DDoc) ->
  +        case couch_doc:get_validate_doc_fun(DDoc) of
  +            nil -> [];
  +            Fun -> [Fun]
  +        end
  +    end, DDocs),
  +    {ok, Funs};
  +recover({DbName, DDocId}) ->
  +    fabric:open_doc(DbName, DDocId, []).
  
positive.code:                 Else ->
                      throw(Else)
              end
      end.
  
  
  
negative.code: 
  
  open(Key) ->
      try ets_lru:lookup_d(?CACHE, Key) of
          {ok, _} = Resp ->
              Resp;
          _ ->
  