Convert PK/FK from int4 to int8: events.id, push_event_payloads.event_id, and ci_build_trace_sections.id. Stage 1 of 2.
C4
Production Change - Criticality 4Change Objective | Convert data type of events.id , push_event_payloads.event_id , and ci_build_trace_sections.id from int4 to int8 . |
---|---|
Change Type | Type described above |
Services Impacted | Postgres |
Change Team Members | @Finotto @NikolayS |
Change Severity | Not critical right now, but highly critical for the future (if not resolved will lead to partial service degradation (inability to INSERT new rows to affected tables) |
Buddy check or tested in staging | @abrandl |
Schedule of the change | Date and time (with timezone) |
Duration of the change | Time to execute the change ( including a possible rollback ) |
Detailed steps for the change. Each step must include: | - pre-conditions for execution of the step, - execution commands for the step, - post-execution validation for the step , - rollback of the step |
#Additional details
The design is described here: https://nik-blueprint-int4-to-int8.about-src.gitlab.com/handbook/engineering/infrastructure/blueprint/201903-postgres-int4-pk/index.html
The change is in this MR (complete, waiting for approval): https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24512
There will be a long-lasting background migration initiated by deployment. After this change is deployed, the following is to be monitored in regular fashion (it is outside of the scope of this ticket itself):
- the progress of background migration (TBD: instructions how to monitor it)
- the growth rates of tables involved in this change
- autovacuum activity (first of all: processing of the tables involved in this change).