Skip to content

Retry update issue position on rebalancing [RUN ALL RSPEC] [RUN AS-IF-FOSS]

What does this MR do?

Implement a retry mechanism on issues relative position update. We see quite often that some updates on relative position update get a statement timeout, ie. the update takes longer than 15 secs timeout on production. That can be because of couple reasons:

  • one or more of the updated rows are being locked by another update
  • the updated rows are too spread or too big and updating the rows actually takes longer than 15 secs, especially as we have quite a few indexes on issues table.

With this MR we are trying to add a retry mechanism, where we try to obtain a lock on the rows we want to update in several retries, as well as 3 retries on each update batch and scale down the batches if the 3 retries fail.

The retry mechanism is also being added behind a FF, so to try it out you'd need to enable issue_rebalancing_with_retry FF.

#276483 (comment 542965735)

Screenshots (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Alexandru Croitor

Merge request reports