anchor.diff:          end, LinkNames)
       catch
           _Error:_Reason ->
  -            ?info("aaaaaa3 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]),
  +            case node() of
  +                FetchNode ->
  +                    ?info("aaaaaa3 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]);
  +                _ ->
  +                    ?info("nnnnnn3 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}])
  +            end,
   %%            ?debug_stacktrace("Get links from memory error ~p:~p for links ~p (key ~p)",
   %%                [Error, Reason, LinkNames, Key]),
               case rpc:call(FetchNode, datastore_writer, fetch_links, [Ctx, Key, TreeIds, LinkNames]) of
  
positive.code:         end
      catch
          _Error2:_Reason2 ->
              ?info("aaaaaa4 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]),
  %%            ?debug_stacktrace("Get links' trees from memory error ~p:~p for key ~p", [Error2, Reason2, Key]),
              case rpc:call(FetchNode, datastore_writer, fetch_links_trees, [Ctx, Key]) of
                  {badrpc, Reason3} -> {error, Reason3};
  
negative.code:         {ok, Doc} -> {ok, Doc};
          % TODO - jaki sens dla memory_only?
          {error, not_found} ->
              case node() of
                  FetchNode ->
                      ?info("aaaaaa ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]);
                  _ ->
                      ?info("nnnnnn ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}])
              end,
              case rpc:call(FetchNode, datastore_writer, fetch, [Ctx, Key]) of
                  {badrpc, Reason} -> {error, Reason};
                  Result -> Result
  