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: truecheck 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_keyentry tosharding_keyin the table's dictionary as adding the constraint is the final requirement for it to be a fully qualified sharding key.
References
- Organization Isolation and Sharding Keys: https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/organization/isolation/
- Sharding Key (Cells) Development Guide: https://docs.gitlab.com/ee/development/cells/#defining-a-sharding-key-for-all-cell-local-tables
- Related to #493768 (closed)
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