MergeRequestResolver has N+1 issue with diff_stats node
🔥 Problem
According to the kibana logs (internal) the query to fetch a merge request with diffStats
node has N + 1
issue that triggers a lot of database queries while loading associated MergeRequestDiff
and MergeRequestDiffCommit
.
Example of query:
query GetProjectMergeRequests($project: ID!) {
project(fullPath: $project) {
name
nameWithNamespace
mergeRequests(sort: UPDATED_DESC) {
nodes {
__typename
diffStats {
path
}
}
}
}
}
🚒 Solution
Optimize query by preloading required associations with LookAhead
Edited by Dzmitry (Dima) Meshcharakou