Skip to content

Reduce N+1 Gitaly queries when publishing multiple draft notes

What does this MR do?

We are currently calling Discussions::CaptureDiffNotePositionService for each draft note being published and results to N+1 Gitaly queries. This is because we create an instance of that service in Notes::CreateService for each draft note being published and that service is being called in that service.

In this fix, we are adding the capability to skip that call so we can call it within the DraftNotes::PublishService instead and only use a single instance of that service.

How to setup and validate locally (strongly suggested)

  1. Create a MR.
  2. Create multiple draft notes as part of a review on the diff.
  3. Publish review.
  4. Check if all the draft notes have been published as comments and shown on the diff properly.

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Related to #226924 (closed)

Edited by Patrick Bajao

Merge request reports