Investigate and optimize PostReceive worker performance bottlenecks based on instrumentation data
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=566546) </details> <!--IssueSummary end--> Part of gitlab-org&19159+ ### Summary Using data from enhanced instrumentation (see #566545+), identify slowest components of the `PostReceive` worker to achieve the 10‑second performance target. **Kibana**: https://log.gprd.gitlab.net/app/r/s/Gd0Pq+ ### Problem Based on initial analysis and the parent issue investigation, several performance bottlenecks have been identified: 1. **Redis Cache Operations** - 35,566 repository cache calls that took 9.7 seconds - Related to the Epic gitlab-org&17190 for cache optimization 2. **Lock Contention** - Multiple PostReceive jobs competing for the same locks - Particularly problematic with pull mirroring scenarios 3. **Database Query Performance** - Transaction overhead and query optimization opportunities - Potential N+1 query patterns 4. **CPU-Intensive Operations** - Repository expiration logic - Event processing overhead ### Approach - Analyze the results of instrumentation from #566545+ - Analyze patterns and identify top bottlenecks - Create issues to optimize each bottleneck ### Acceptance Criteria - [ ] Performance analysis report based on instrumentation data - [ ] Create issues for identified bottlenecks (ideally, with suggestions how to fix them) ### Related Issues - Related to: gitlab-org/gitlab#553426
issue