N+1: Tree.new(recursive: true)
Tree#get_entries(recursive: true) makes recursive Gitaly calls, one for each directory in the tree. This is completely unacceptable, see #1022 (closed). If you call this function on the gitlab-ce repo (via e.g. /api/v4/projects/:id/repository/tree?recursive=true) you generate 2800 Gitaly calls.
Stages:
-
Investigate -
Assess priority -
Server-side fixed LINK -
Client-side fixed LINK
Affected RPC's:
Endpoint::Name
Process explanation:
Investigate
If it's not clear what RPC's add up to the N+1 violation, do a new CI run on gitlab-ce/ee to find out.
Assess priority
- Does this N+1 degrade the user experience?
- Does it cause more than 100 (extra) requests per second on gitlab.com?
If the answer to both questions is 'no' then downgrade the priority of this issue to v1.1.
Edited by Jacob Vosmaer