Skip to content

Add NOT NULL on sharding key for merge_requests_closing_issues

What does this MR do and why?

Add NOT NULL constraint on the merge_requests_closing_issues sharding key. The sharding key will be used to determine what Organization the row belongs to.

  • Backfill has been finalized in !177644 (merged)
  • No presence: true check is added in the model because we're also populating the column with a "BEFORE INSERT OR UPDATE" trigger.
    • Trigger added in !157186 (merged)
    • We have no well-defined plan yet on the removal of triggers but we will make sure that the application code is setting a the value on the column BEFORE removing the trigger.
  • The migration exceeds the 100ms timing guideline at 2482.41ms -- but it doesn't look significant enough to warrant async validation as it only adds a couple of seconds to the total migration time (?)
  • Updates the desired_sharding_key entry to sharding_key in the table's dictionary as adding the constraint is the final requirement for it to be a fully qualified sharding key.

References

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

N/A

How to set up and validate locally

N/A

Edited by Shane Maglangit

Merge request reports

Loading