Use new TreeEntryFinder RPC to reduce Gitaly IO
Problem to solve
We discovered another N+1 that hits Gitaly TreeEntry
via the RelativeLinkFilter
: https://gitlab.com/gitlab-org/gitlab-ce/issues/58657. When a blob is loaded with many relative links, TreeEntry
is called for each link to scan the URI type.
We are implementing a new RPC Add support for gitaly#1608 (closed) to improve performance but the Rails application will need to be updated to use the new RPC.
Further details
There are multiple paths that hit Gitaly TreeEntry
, and https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25706 did not cover all cases. This merge request covers another common use case.
For users using Gitaly on top of NFS, accessing the Git data directly via Rugged may be faster than going through than Gitaly. A feature flag rugged_commit_tree_entry
was added in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25896 to activate the Rugged method to mitigate performance problems for some customers.
Proposal
Implement changes to support the new RPC