anchor.diff:      BackendPid || BackendPid <- mnesia:table(backend_pid),
                     BackendPid#backend_pid.backend_name =:= Name
     ])).
  -  
  +
  +mark_backend(_Name, FromPid, ready) -> 
  +  delete(FromPid);
  +mark_backend(Name, FromPid, Status) ->
  +  create(#backend_pid{pid=FromPid, 
  +                      backend_name=Name,
  +                      status=Status, 
  +                      start_time=date_util:now_to_seconds()}).
  +
   % Insert a new backend pid
  -create(PidTuple) ->
  -  db:write(PidTuple).
  +create(PidTuple) -> db:write(PidTuple).
   
  +% Delete a backend_pid
  +delete(Pid) -> db:delete(backend_pid, Pid).
   
   % TESTS
   test() ->
  
positive.code:   Expect = [whereis(pid)],
    ?assertEqual(Expect, Res).
  
  % Just to give us pids we can play with
  forever_loop() ->
    receive
  
negative.code: % For speed purposes, we'll use dirty read instead of a function
  % Even though we have to use 2 functions to lookup the backend, this is still
  % faster than using a function. This may have to be placed into a transaction...
  find_backend_for_pid(Pid) when is_pid(Pid) ->
    case db:read({backend_pid, Pid}) of
      [BackendPid|_] ->
        backend:find_by_name(BackendPid#backend_pid.backend_name);
      [] -> []
    end;
  
  find_backend_for_pid(_) -> [].
    
    % db:find(qlc:q([
    %   Backend ||  BackendPid <- mnesia:table(backend_pid),
  