anchor.diff:  
   open_async(Server, From, DbName, Filepath, Options) ->
       Parent = self(),
  -    put({async_open, DbName}, now()),
       Opener = spawn_link(fun() ->
           Res = couch_db:start_link(DbName, Filepath, Options),
           gen_server:call(Parent, {open_result, DbName, Res}, infinity),
  
positive.code:     {reply, {ok, Server}, Server};
  handle_call({open_result, DbName, {ok, Db}}, _From, Server) ->
      link(Db#db.main_pid),
      case erase({async_open, DbName}) of undefined -> ok; T0 ->
          ?LOG_INFO("needed ~p ms to open new ~s", [timer:now_diff(now(),T0)/1000,
              DbName])
      end,
      % icky hack of field values - compactor_pid used to store clients
      % and fd used to possibly store a creation request
      [#db{fd=ReqType, compactor_pid=Froms}] = ets:lookup(couch_dbs, DbName),
  
negative.code:         end;
      [#db{compactor_pid = Froms} = Db] when is_list(Froms) ->
          % icky hack of field values - compactor_pid used to store clients
          true = ets:insert(couch_dbs, Db#db{compactor_pid = [From|Froms]}),
          {noreply, Server};
      [#db{} = Db] ->
  