Skip to content

Eliminate N+1 queries in loading discussions.json endpoint

Stan Hu requested to merge sh-optimize-discussion-json into master

In #37955 (closed), we see the profiler had a number of N+1 queries from repeated access to cross_reference_not_visible_for?. This was optimized in previous versions of GitLab by rendering all notes at once, counting the number of visible references, and then using that number to check whether a system note should be fully redacted.

There was also another N+1 query calling ProjectTeam#member?, which did not take advantage of an optimization in prepare_notes_for_rendering that would preload the maximum access level per project.

Merge request reports