anchor.diff:          {ok, #document{deleted = true}} -> {error, not_found};
           {ok, Doc} -> {ok, Doc};
           {error, not_found} ->
  -            ?info("aaaaaa2 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]),
  +            case node() of
  +                FetchNode ->
  +                    ?info("aaaaaa2 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]);
  +                _ ->
  +                    ?info("nnnnnn2 ~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
  
positive.code:         {ok, Doc} -> {ok, Doc};
          % TODO - jaki sens dla memory_only?
          {error, not_found} ->
              ?info("aaaaaa ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]),
              case rpc:call(FetchNode, datastore_writer, fetch, [Ctx, Key]) of
                  {badrpc, Reason} -> {error, Reason};
                  Result -> Result
  
negative.code:         end
      catch
          _Error2:_Reason2 ->
              case node() of
                  FetchNode ->
                      ?info("aaaaaa4 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}]);
                  _ ->
                      ?info("nnnnnn4 ~p", [{Key, Ctx, erlang:process_info(self(), current_stacktrace)}])
              end,
  %%            ?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};
  