Bulk-render commit titles in the tree view to improve performance
What does this MR do?
Improve the performance of the repository tree view page by bulk-rendering commit titles.
We're talking about pages like this: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/changelogs/unreleased
The commit titles are rendered one at a time, which results in N+1 SQL queries when the commit titles contain references to issues, merge requests, etc.
By introducing a
Banzai::ObjectRenderer, all commits can be rendered at the same time, which reduces some of the costs of rendering.
Following benchmarking, this may allow us to load commit data in batches larger than 25. Increasing the batch size to 50 will halve the number of asynchronous HTTP requests made to complete the page, but will also allow the same
Banzai::ObjectRenderer to process twice as many commits, enhancing the impact of this change.
What are the relevant issue numbers?
Does this MR meet the acceptance criteria?
- Changelog entry added, if necessary
- Documentation created/updated
- Tests added for this feature/bug
- Conforms to the code review guidelines
- Conforms to the merge request performance guidelines
- Conforms to the style guides
- Conforms to the database guides
Closes #43140 (closed)