Add and backfill namespace_id for wiki_page_slugs
What does this MR do and why?
Add and backfill namespace_id for wiki_page_slugs.
This table has a desired sharding key configured (view configuration).
This merge request is the first step towards transforming the desired sharding key into a sharding key.
This involves three changes:
- Adding a new column that will serve as the sharding key (along with the relevant index and foreign key).
- Populating the sharding key when new records are created by adding a database function and trigger.
- Scheduling a batched background migration to set the sharding key for existing records.
Once the background migration has completed, a second merge request will be created to finalize the background migration and validate the not null constraint.
How to verify
We have assigned a random backend engineer from groupknowledge to review these changes. Please review this merge request from a backend perspective. The main thing we are looking to verify is that the added column and association match the values specified by the desired sharding key configuration and that backfilling the column from this other table makes sense in the context of this feature.
When you are finished, please:
- Trigger the database testing pipeline as instructed by Danger.
- Request a review from the backend maintainer and database reviewer suggested by Danger.
If you have any questions or concerns, reach out to @tigerwnz
or @shubhamkrai
.
This merge request was generated by a once off keep implemented in !143774
This change was generated by gitlab-housekeeper using the Keeps::BackfillDesiredShardingKeySmallTable keep.
To provide feedback on your experience with gitlab-housekeeper
please create an issue with the
label GitLab Housekeeper and consider pinging the author of this keep.
Related to #493768
Merge request reports
Activity
added devopsplan sectiondev labels
added 1 commit
- d8f12e23 - Add and backfill wiki_page_slugs for namespace_id
assigned to @smaglangit
added backend databasereview pending labels
Reviewer roulette
Category Reviewer Maintainer backend @olaoluro
(UTC+0, 8 hours behind author)
@DylanGriffith
(UTC+11, 3 hours ahead of author)
database @abdwdd
(UTC+5.5, 2.5 hours behind author)
@Quintasan
(UTC+1, 7 hours behind author)
Please refer to documentation page for guidance on how you can benefit from the Reviewer Roulette, or use the GitLab Review Workload Dashboard to find other available reviewers.
If needed, you can retry the
danger-review
job that generated this comment.Generated by
DangerEdited by ****added Data WarehouseImpact Check label
added 1 commit
- c8c57288 - Add and backfill wiki_page_slugs for namespace_id
Database migrations (on the main database)
Migrations included in this change have been executed on gitlab.com data for testing purposes. For details, please see the migration testing pipeline (limited access).
Migration Type Total runtime Result DB size change 20250304103242 - AddNamespaceIdToWikiPageSlugs Regular 4.8 s +0.00 B 20250304103243 - IndexWikiPageSlugsOnNamespaceId Post deploy 11.2 s +14.43 MiB 20250304103244 - AddWikiPageSlugsNamespaceIdFk Post deploy 5.8 s +0.00 B 20250304103245 - AddWikiPageSlugsNamespaceIdTrigger Post deploy 5.0 s +8.00 KiB [note] 20250304103246 - QueueBackfillWikiPageSlugsNamespaceId Post deploy 5.6 s +0.00 B Runtime Histogram for all migrations
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 23 1 second - 5 seconds 0 5 seconds - 15 seconds 1 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103242 - AddNamespaceIdToWikiPageSlugs
* Duration: 4.8 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 2.6 ms 2.6 ms 2.6 ms 0 ALTER TABLE "wiki_page_slugs" ADD "namespace_id" bigint
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddNamespaceIdToWikiPageSlugs
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 3 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103243 - IndexWikiPageSlugsOnNamespaceId
* Duration: 11.2 s
* Database size change: +14.43 MiBCalls Total Time Max Time Mean Time Rows Query 1 5014.2 ms 5014.2 ms 5014.2 ms 0 CREATE INDEX CONCURRENTLY "index_wiki_page_slugs_on_namespace_id" ON "wiki_page_slugs" ("namespace_id")
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for IndexWikiPageSlugsOnNamespaceId
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 2 1 second - 5 seconds 0 5 seconds - 15 seconds 1 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103244 - AddWikiPageSlugsNamespaceIdFk
* Duration: 5.8 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 11.6 ms 11.6 ms 11.6 ms 0 ALTER TABLE wiki_page_slugs VALIDATE CONSTRAINT fk_f07dd9db19
1 1.6 ms 1.6 ms 1.6 ms 0 ALTER TABLE wiki_page_slugs ADD CONSTRAINT fk_f07dd9db19 FOREIGN KEY (namespace_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID
1 0.7 ms 0.7 ms 0.7 ms 0 SELECT $1 AS one
FROM "postgres_foreign_keys" WHERE "postgres_foreign_keys"."constrained_table_name" = $2 AND "postgres_foreign_keys"."referenced_table_name" = $3 AND "postgres_foreign_keys"."name" = $4 AND "postgres_foreign_keys"."constrained_columns" = $5 AND "postgres_foreign_keys"."referenced_columns" = $6 AND "postgres_foreign_keys"."on_delete_action" = $7
LIMIT $82 0.5 ms 0.3 ms 0.3 ms 0 SELECT "postgres_partitioned_tables".*
FROM "postgres_partitioned_tables" WHERE (identifier = concat(current_schema(), $1, $2))
LIMIT $32 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddWikiPageSlugsNamespaceIdFk
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 7 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103245 - AddWikiPageSlugsNamespaceIdTrigger
* Duration: 5.0 s
* Database size change: +8.00 KiB [note]Calls Total Time Max Time Mean Time Rows Query 1 0.6 ms 0.6 ms 0.6 ms 0 CREATE OR REPLACE FUNCTION trigger_9e875cabe9c9() RETURNS TRIGGER AS $1 LANGUAGE PLPGSQL
1 0.2 ms 0.2 ms 0.2 ms 0 CREATE TRIGGER trigger_9e875cabe9c9 BEFORE INSERT OR UPDATE ON "wiki_page_slugs" FOR EACH ROW EXECUTE FUNCTION trigger_9e875cabe9c9()
1 0.1 ms 0.1 ms 0.1 ms 0 DROP TRIGGER IF EXISTS trigger_9e875cabe9c9 ON "wiki_page_slugs"
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddWikiPageSlugsNamespaceIdTrigger
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 5 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103246 - QueueBackfillWikiPageSlugsNamespaceId
* Duration: 5.6 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 2.5 ms 2.5 ms 2.5 ms 1 SELECT MAX("id")
FROM "wiki_page_slugs"1 0.2 ms 0.2 ms 0.2 ms 1 INSERT INTO "batched_background_migrations" ("created_at", "updated_at", "max_value", "batch_size", "sub_batch_size", "interval", "status", "job_class_name", "table_name", "column_name", "job_arguments", "total_tuple_count", "started_at", "gitlab_schema", "queued_migration_version") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15) RETURNING "id"
1 0.0 ms 0.0 ms 0.0 ms 0 SELECT $1 AS one
FROM "batched_background_migrations" WHERE "batched_background_migrations"."job_class_name" = $2 AND "batched_background_migrations"."table_name" = $3 AND "batched_background_migrations"."column_name" = $4 AND (job_arguments = $5) AND (ARRAY[$6] <@ ARRAY[$7, $8, $9, $10, $11, $12, $13]) AND "batched_background_migrations"."gitlab_schema" IN ($14, $15, $16, $17, $18, $19, $20)
LIMIT $211 0.0 ms 0.0 ms 0.0 ms 0 SELECT $1 AS one
FROM "batched_background_migrations" WHERE "batched_background_migrations"."job_arguments" = $2 AND "batched_background_migrations"."job_class_name" = $3 AND "batched_background_migrations"."table_name" = $4 AND "batched_background_migrations"."column_name" = $5
LIMIT $62 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for QueueBackfillWikiPageSlugsNamespaceId
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 0 0.1 seconds - 1 second 6 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Background Migration: BackfillPushEventPayloadsProjectId
Sampled 51 batches. Estimated Time to complete: 8 years, 8 months, 2 weeks, 3 days, 7 hours, 43 minutes, and 36 seconds
- Interval: 120s
- Max batch size: 0
- Estimated seconds to complete: 274990200s
- Average batch time: 5.32s
- Batch size: 1000
- N. of batches sampled: 51
- N. of failed batches: 0
Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation.
Consider changing max_batch_size and interval if this estimate is unacceptable.
Calls Total Time Max Time Mean Time Rows Query 450 10933.1 ms 189.4 ms 24.3 ms 44100 UPDATE push_event_payloads
SET project_id = events.project_id
FROM events
WHERE events.id = push_event_payloads.event_id AND push_event_payloads.event_id IN (
SELECT push_event_payloads.event_id
FROM push_event_payloads
WHERE push_event_payloads.event_id BETWEEN $1 AND $2 AND push_event_payloads.event_id >= $3 AND push_event_payloads.event_id < $4 AND push_event_payloads.project_id IS NULL
)51 811.0 ms 128.5 ms 15.9 ms 4901 UPDATE push_event_payloads
SET project_id = events.project_id
FROM events
WHERE events.id = push_event_payloads.event_id AND push_event_payloads.event_id IN (
SELECT push_event_payloads.event_id
FROM push_event_payloads
WHERE push_event_payloads.event_id BETWEEN $1 AND $2 AND push_event_payloads.event_id >= $3 AND push_event_payloads.project_id IS NULL
)51 34.8 ms 4.7 ms 0.7 ms 51 UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $551 33.0 ms 3.8 ms 0.6 ms 51 UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $5501 100.2 ms 3.7 ms 0.2 ms 450 SELECT push_event_payloads.event_id
FROM push_event_payloads
WHERE push_event_payloads.event_id BETWEEN $1 AND $2 AND push_event_payloads.event_id >= $3
ORDER BY push_event_payloads.event_id ASC
LIMIT $4
OFFSET $5102 18.1 ms 1.8 ms 0.2 ms 102 INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
51 2.2 ms 0.3 ms 0.0 ms 51 SELECT push_event_payloads.event_id
FROM push_event_payloads
WHERE push_event_payloads.event_id BETWEEN $1 AND $2
ORDER BY push_event_payloads.event_id ASC
LIMIT $351 4.0 ms 0.1 ms 0.1 ms 51 SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)102 4.6 ms 0.1 ms 0.0 ms 102 SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $2Histogram of batch runtimes for BackfillPushEventPayloadsProjectId
Batch Runtime Count 0 seconds - 10 seconds 51 10 seconds - 1 minute 0 1 minute - 2 minutes 0 2 minutes - 3 minutes 0 3 minutes - 5 minutes 0 5 minutes + 0 Histogram across all sampled batches of BackfillPushEventPayloadsProjectId
Query Runtime Count 0 seconds - 0.1 seconds 268 0.1 seconds - 0.5 seconds 1141 0.5 seconds - 1 second 1 1 second - 2 seconds 0 2 seconds - 5 seconds 0 5 seconds + 0 Background Migration: BackfillScanResultPoliciesProjectId
Sampled 10 batches. Estimated Time to complete: 21 hours and 46 minutes
- Interval: 120s
- Max batch size: 0
- Estimated seconds to complete: 78360s
- Average batch time: 4.48s
- Batch size: 1000
- N. of batches sampled: 10
- N. of failed batches: 0
Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation.
Consider changing max_batch_size and interval if this estimate is unacceptable.
Calls Total Time Max Time Mean Time Rows Query 81 1052.1 ms 292.4 ms 13.0 ms 900 UPDATE scan_result_policies
SET project_id = security_orchestration_policy_configurations.project_id
FROM security_orchestration_policy_configurations
WHERE security_orchestration_policy_configurations.id = scan_result_policies.security_orchestration_policy_configuration_id AND scan_result_policies.id IN (
SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3 AND scan_result_policies.id < $4 AND scan_result_policies.project_id IS NULL
)10 5.7 ms 4.0 ms 0.6 ms 100 UPDATE scan_result_policies
SET project_id = security_orchestration_policy_configurations.project_id
FROM security_orchestration_policy_configurations
WHERE security_orchestration_policy_configurations.id = scan_result_policies.security_orchestration_policy_configuration_id AND scan_result_policies.id IN (
SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3 AND scan_result_policies.project_id IS NULL
)91 14.6 ms 3.7 ms 0.2 ms 81 SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3
ORDER BY scan_result_policies.id ASC
LIMIT $4
OFFSET $510 7.0 ms 3.0 ms 0.7 ms 10 UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $510 10.1 ms 3.0 ms 1.0 ms 10 UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $520 3.0 ms 0.2 ms 0.1 ms 20 INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
10 0.5 ms 0.1 ms 0.1 ms 10 SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)20 0.8 ms 0.1 ms 0.0 ms 20 SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $210 0.3 ms 0.0 ms 0.0 ms 10 SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2
ORDER BY scan_result_policies.id ASC
LIMIT $3Histogram of batch runtimes for BackfillScanResultPoliciesProjectId
Batch Runtime Count 0 seconds - 10 seconds 10 10 seconds - 1 minute 0 1 minute - 2 minutes 0 2 minutes - 3 minutes 0 3 minutes - 5 minutes 0 5 minutes + 0 Histogram across all sampled batches of BackfillScanResultPoliciesProjectId
Query Runtime Count 0 seconds - 0.1 seconds 237 0.1 seconds - 0.5 seconds 25 0.5 seconds - 1 second 0 1 second - 2 seconds 0 2 seconds - 5 seconds 0 5 seconds + 0 Background Migration: BackfillScanResultPoliciesNamespaceId
Sampled 10 batches. Estimated Time to complete: 20 hours and 16 minutes
- Interval: 120s
- Max batch size: 0
- Estimated seconds to complete: 72960s
- Average batch time: 4.74s
- Batch size: 1000
- N. of batches sampled: 10
- N. of failed batches: 0
Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation.
Consider changing max_batch_size and interval if this estimate is unacceptable.
Calls Total Time Max Time Mean Time Rows Query 81 1929.9 ms 117.3 ms 23.8 ms 6956 UPDATE scan_result_policies
SET namespace_id = security_orchestration_policy_configurations.namespace_id
FROM security_orchestration_policy_configurations
WHERE security_orchestration_policy_configurations.id = scan_result_policies.security_orchestration_policy_configuration_id AND scan_result_policies.id IN (
SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3 AND scan_result_policies.id < $4 AND scan_result_policies.namespace_id IS NULL
)10 128.1 ms 34.0 ms 12.8 ms 643 UPDATE scan_result_policies
SET namespace_id = security_orchestration_policy_configurations.namespace_id
FROM security_orchestration_policy_configurations
WHERE security_orchestration_policy_configurations.id = scan_result_policies.security_orchestration_policy_configuration_id AND scan_result_policies.id IN (
SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3 AND scan_result_policies.namespace_id IS NULL
)10 12.0 ms 3.4 ms 1.2 ms 10 UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $591 13.8 ms 0.3 ms 0.2 ms 81 SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2 AND scan_result_policies.id >= $3
ORDER BY scan_result_policies.id ASC
LIMIT $4
OFFSET $520 3.0 ms 0.3 ms 0.1 ms 20 INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
20 1.0 ms 0.3 ms 0.1 ms 20 SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $210 1.2 ms 0.2 ms 0.1 ms 10 UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $510 0.5 ms 0.1 ms 0.0 ms 10 SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)10 0.4 ms 0.1 ms 0.0 ms 10 SELECT scan_result_policies.id
FROM scan_result_policies
WHERE scan_result_policies.id BETWEEN $1 AND $2
ORDER BY scan_result_policies.id ASC
LIMIT $3Histogram of batch runtimes for BackfillScanResultPoliciesNamespaceId
Batch Runtime Count 0 seconds - 10 seconds 10 10 seconds - 1 minute 0 1 minute - 2 minutes 0 2 minutes - 3 minutes 0 3 minutes - 5 minutes 0 5 minutes + 0 Histogram across all sampled batches of BackfillScanResultPoliciesNamespaceId
Query Runtime Count 0 seconds - 0.1 seconds 168 0.1 seconds - 0.5 seconds 94 0.5 seconds - 1 second 0 1 second - 2 seconds 0 2 seconds - 5 seconds 0 5 seconds + 0 Background Migration: BackfillWikiPageSlugsNamespaceId
Sampled 52 batches. Estimated Time to complete: 3 days and 36 minutes
- Interval: 120s
- Max batch size: 0
- Estimated seconds to complete: 261360s
- Average batch time: 5.24s
- Batch size: 1000
- N. of batches sampled: 52
- N. of failed batches: 0
Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation.
Consider changing max_batch_size and interval if this estimate is unacceptable.
Calls Total Time Max Time Mean Time Rows Query 459 20924.6 ms 278.8 ms 45.6 ms 45535 UPDATE wiki_page_slugs
SET namespace_id = wiki_page_meta.namespace_id
FROM wiki_page_meta
WHERE wiki_page_meta.id = wiki_page_slugs.wiki_page_meta_id AND wiki_page_slugs.id IN (
SELECT wiki_page_slugs.id
FROM wiki_page_slugs
WHERE wiki_page_slugs.id BETWEEN $1 AND $2 AND wiki_page_slugs.id >= $3 AND wiki_page_slugs.id < $4 AND wiki_page_slugs.namespace_id IS NULL
)52 2113.5 ms 129.9 ms 40.6 ms 5022 UPDATE wiki_page_slugs
SET namespace_id = wiki_page_meta.namespace_id
FROM wiki_page_meta
WHERE wiki_page_meta.id = wiki_page_slugs.wiki_page_meta_id AND wiki_page_slugs.id IN (
SELECT wiki_page_slugs.id
FROM wiki_page_slugs
WHERE wiki_page_slugs.id BETWEEN $1 AND $2 AND wiki_page_slugs.id >= $3 AND wiki_page_slugs.namespace_id IS NULL
)52 23.9 ms 2.1 ms 0.5 ms 52 UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $5104 18.8 ms 1.6 ms 0.2 ms 104 INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
52 10.4 ms 1.1 ms 0.2 ms 52 UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $5511 49.1 ms 0.6 ms 0.1 ms 459 SELECT wiki_page_slugs.id
FROM wiki_page_slugs
WHERE wiki_page_slugs.id BETWEEN $1 AND $2 AND wiki_page_slugs.id >= $3
ORDER BY wiki_page_slugs.id ASC
LIMIT $4
OFFSET $552 1.9 ms 0.1 ms 0.0 ms 52 SELECT wiki_page_slugs.id
FROM wiki_page_slugs
WHERE wiki_page_slugs.id BETWEEN $1 AND $2
ORDER BY wiki_page_slugs.id ASC
LIMIT $352 4.2 ms 0.1 ms 0.1 ms 52 SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)104 4.6 ms 0.1 ms 0.0 ms 104 SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $2Histogram of batch runtimes for BackfillWikiPageSlugsNamespaceId
Batch Runtime Count 0 seconds - 10 seconds 52 10 seconds - 1 minute 0 1 minute - 2 minutes 0 2 minutes - 3 minutes 0 3 minutes - 5 minutes 0 5 minutes + 0 Histogram across all sampled batches of BackfillWikiPageSlugsNamespaceId
Query Runtime Count 0 seconds - 0.1 seconds 891 0.1 seconds - 0.5 seconds 547 0.5 seconds - 1 second 0 1 second - 2 seconds 0 2 seconds - 5 seconds 0 5 seconds + 0 Background Migration: BackfillPipelineExecutionPoliciesConfigLinks
Sampled 1 batches. Estimated Time to complete: 11 hours, 32 minutes, and 57 seconds
- Interval: 120s
- Max batch size: 0
- Estimated seconds to complete: 41577s
- Average batch time: 692.95s
- Batch size: 1000
- N. of batches sampled: 1
- N. of failed batches: 0
Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation.
Consider changing max_batch_size and interval if this estimate is unacceptable.
Calls Total Time Max Time Mean Time Rows Query 2 11.7 ms 11.5 ms 5.8 ms 2 INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
10 19.2 ms 10.8 ms 1.9 ms 9 SELECT security_policies.id
FROM security_policies
WHERE security_policies.id BETWEEN $1 AND $2 AND security_policies.type = $3 AND security_policies.id >= $4
ORDER BY security_policies.id ASC
LIMIT $5
OFFSET $61000 157.8 ms 9.7 ms 0.2 ms 1000 SELECT routes.*
FROM routes
WHERE routes.source_type = $1 AND routes.path = $2
LIMIT $31000 132.6 ms 9.3 ms 0.1 ms 1000 SELECT projects.*
FROM projects
WHERE projects.id = $1
LIMIT $21000 184.6 ms 7.6 ms 0.2 ms 1000 INSERT INTO security_pipeline_execution_policy_config_links (project_id, security_policy_id) VALUES ($1, $2) RETURNING id
1 3.6 ms 3.6 ms 3.6 ms 1 UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $59 10.1 ms 2.5 ms 1.1 ms 900 SELECT security_policies.*
FROM security_policies
WHERE security_policies.id IN (
SELECT security_policies.id
FROM security_policies
WHERE security_policies.id BETWEEN $1 AND $2 AND security_policies.type = $3 AND security_policies.id >= $4 AND security_policies.id < $5
)
ORDER BY security_policies.id ASC
LIMIT $61 1.0 ms 1.0 ms 1.0 ms 100 SELECT security_policies.*
FROM security_policies
WHERE security_policies.id IN (
SELECT security_policies.id
FROM security_policies
WHERE security_policies.id BETWEEN $1 AND $2 AND security_policies.type = $3 AND security_policies.id >= $4
)
ORDER BY security_policies.id ASC
LIMIT $51000 23.3 ms 0.7 ms 0.0 ms 0 SELECT security_pipeline_execution_policy_config_links.*
FROM security_pipeline_execution_policy_config_links
WHERE security_pipeline_execution_policy_config_links.security_policy_id = $1
LIMIT $21 0.2 ms 0.2 ms 0.2 ms 1 UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $52 0.1 ms 0.1 ms 0.0 ms 2 SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $21 0.0 ms 0.0 ms 0.0 ms 1 SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)1 0.0 ms 0.0 ms 0.0 ms 1 SELECT security_policies.id
FROM security_policies
WHERE security_policies.id BETWEEN $1 AND $2 AND security_policies.type = $3
ORDER BY security_policies.id ASC
LIMIT $4Histogram of batch runtimes for BackfillPipelineExecutionPoliciesConfigLinks
Batch Runtime Count 0 seconds - 10 seconds 0 10 seconds - 1 minute 0 1 minute - 2 minutes 0 2 minutes - 3 minutes 0 3 minutes - 5 minutes 0 5 minutes + 1 Histogram across all sampled batches of BackfillPipelineExecutionPoliciesConfigLinks
Query Runtime Count 0 seconds - 0.1 seconds 0 0.1 seconds - 0.5 seconds 4028 0.5 seconds - 1 second 0 1 second - 2 seconds 0 2 seconds - 5 seconds 0 5 seconds + 0 Other migrations pending on GitLab.com
Migration Type Total runtime Result DB size change 20250301122035 - AddProjectIdToPushEventPayloads Regular 6.0 s +0.00 B 20250205175341 - QueueBackfillPipelineExecutionPoliciesConfigLinks Post deploy 6.1 s +8.00 KiB [note] 20250210064918 - ValidateApprovalMergeRequestRulesProjectIdNotNullConstraint Post deploy 5.2 s +0.00 B 20250213231531 - FinalizeHkBackfillProtectedTagCreateAccessLevelsProjectId Post deploy 5.4 s +0.00 B 20250218025905 - SyncFkForBuildsAutoCanceledById Post deploy 8.2 s +0.00 B 20250220231823 - FinalizeHkBackfillReservedStorageBytes Post deploy 5.3 s +0.00 B 20250225075411 - ValidateMergeRequestReviewersProjectIdNotNull Post deploy 5.1 s +0.00 B 20250225075609 - ValidatePackagesBuildInfosProjectIdNotNull Post deploy 5.1 s +0.00 B 20250226231923 - FinalizeHkFixNamespaceIdForWorkItemParentLinks Post deploy 5.4 s +0.00 B 20250227102407 - AddIndexForOrganizationIdOnForkNetworks Post deploy 5.9 s +4.59 MiB 20250227231923 - FinalizeHkBackfillMlCandidateMetricsProjectId Post deploy 5.3 s +0.00 B 20250227232246 - FinalizeHkBackfillCiBuildsRunnerSessionProjectId Post deploy 4.4 s +0.00 B 20250301122036 - PrepareIndexPushEventPayloadsOnProjectId Post deploy 5.4 s +8.00 KiB [note] 20250301122037 - AddPushEventPayloadsProjectIdTrigger Post deploy 4.9 s +0.00 B 20250301122038 - QueueBackfillPushEventPayloadsProjectId Post deploy 5.6 s +0.00 B 20250301125533 - AddScanResultPoliciesProjectIdTrigger Post deploy 4.9 s +0.00 B 20250301125534 - QueueBackfillScanResultPoliciesProjectId Post deploy 5.5 s +0.00 B 20250301125855 - IndexScanResultPoliciesOnNamespaceId Post deploy 9.1 s +4.05 MiB 20250301125856 - AddScanResultPoliciesNamespaceIdFk Post deploy 5.9 s +0.00 B 20250301125857 - AddScanResultPoliciesNamespaceIdTrigger Post deploy 5.0 s +0.00 B 20250301125858 - QueueBackfillScanResultPoliciesNamespaceId Post deploy 5.5 s +0.00 B 20250301231529 - FinalizeHkBackfillProtectedEnvironmentDeployAccessLevelsProtected8203 Post deploy 5.2 s +0.00 B 20250302231828 - FinalizeHkMakeSecurityPolicyBotsPrivate Post deploy 5.9 s +0.00 B 20250302231854 - FinalizeHkBackfillMlCandidateParamsProjectId Post deploy 5.8 s +0.00 B Clone details
Clone ID Clone Created At Clone Data Timestamp Expected Removal Time database-testing-4253188-17478902-main
2025-03-04T13:18:47Z 2025-03-04T11:26:27Z 2025-03-05 02:02:22 +0000 database-testing-4253188-17478902-ci
2025-03-04T13:18:47Z 2025-03-04T12:45:05Z 2025-03-05 02:02:22 +0000 Database migrations (on the ci database)
Migrations included in this change have been executed on gitlab.com data for testing purposes. For details, please see the migration testing pipeline (limited access).
Migration Type Total runtime Result DB size change 20250304103242 - AddNamespaceIdToWikiPageSlugs Regular 6.5 s +0.00 B 20250304103243 - IndexWikiPageSlugsOnNamespaceId Post deploy 7.4 s +8.00 KiB [note] 20250304103244 - AddWikiPageSlugsNamespaceIdFk Post deploy 7.4 s +0.00 B 20250304103245 - AddWikiPageSlugsNamespaceIdTrigger Post deploy 6.7 s +0.00 B 20250304103246 - QueueBackfillWikiPageSlugsNamespaceId Post deploy 6.5 s +0.00 B Runtime Histogram for all migrations
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 16 0.1 seconds - 1 second 4 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103242 - AddNamespaceIdToWikiPageSlugs
* Duration: 6.5 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 10.9 ms 10.9 ms 10.9 ms 0 ALTER TABLE "wiki_page_slugs" ADD "namespace_id" bigint
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddNamespaceIdToWikiPageSlugs
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 2 0.1 seconds - 1 second 1 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103243 - IndexWikiPageSlugsOnNamespaceId
* Duration: 7.4 s
* Database size change: +8.00 KiB [note]Calls Total Time Max Time Mean Time Rows Query 1 4.3 ms 4.3 ms 4.3 ms 0 CREATE INDEX CONCURRENTLY "index_wiki_page_slugs_on_namespace_id" ON "wiki_page_slugs" ("namespace_id")
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for IndexWikiPageSlugsOnNamespaceId
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 2 0.1 seconds - 1 second 1 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103244 - AddWikiPageSlugsNamespaceIdFk
* Duration: 7.4 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 2.4 ms 2.4 ms 2.4 ms 0 ALTER TABLE wiki_page_slugs VALIDATE CONSTRAINT fk_f07dd9db19
1 1.2 ms 1.2 ms 1.2 ms 0 ALTER TABLE wiki_page_slugs ADD CONSTRAINT fk_f07dd9db19 FOREIGN KEY (namespace_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID
1 0.7 ms 0.7 ms 0.7 ms 0 SELECT $1 AS one
FROM "postgres_foreign_keys" WHERE "postgres_foreign_keys"."constrained_table_name" = $2 AND "postgres_foreign_keys"."referenced_table_name" = $3 AND "postgres_foreign_keys"."name" = $4 AND "postgres_foreign_keys"."constrained_columns" = $5 AND "postgres_foreign_keys"."referenced_columns" = $6 AND "postgres_foreign_keys"."on_delete_action" = $7
LIMIT $82 0.5 ms 0.2 ms 0.2 ms 0 SELECT "postgres_partitioned_tables".*
FROM "postgres_partitioned_tables" WHERE (identifier = concat(current_schema(), $1, $2))
LIMIT $32 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddWikiPageSlugsNamespaceIdFk
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 5 0.1 seconds - 1 second 2 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103245 - AddWikiPageSlugsNamespaceIdTrigger
* Duration: 6.7 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 1 0.2 ms 0.2 ms 0.2 ms 0 CREATE OR REPLACE FUNCTION trigger_9e875cabe9c9() RETURNS TRIGGER AS $1 LANGUAGE PLPGSQL
1 0.2 ms 0.2 ms 0.2 ms 0 CREATE TRIGGER trigger_9e875cabe9c9 BEFORE INSERT OR UPDATE ON "wiki_page_slugs" FOR EACH ROW EXECUTE FUNCTION trigger_9e875cabe9c9()
1 0.1 ms 0.1 ms 0.1 ms 0 DROP TRIGGER IF EXISTS trigger_9e875cabe9c9 ON "wiki_page_slugs"
2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for AddWikiPageSlugsNamespaceIdTrigger
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 5 0.1 seconds - 1 second 0 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Migration: 20250304103246 - QueueBackfillWikiPageSlugsNamespaceId
* Duration: 6.5 s
* Database size change: +0.00 BCalls Total Time Max Time Mean Time Rows Query 2 0.0 ms 0.0 ms 0.0 ms 2 SELECT pg_backend_pid()
Histogram for QueueBackfillWikiPageSlugsNamespaceId
Query Runtime Count 0 seconds - 0.01 seconds 0 0.01 seconds - 0.1 seconds 2 0.1 seconds - 1 second 0 1 second - 5 seconds 0 5 seconds - 15 seconds 0 15 seconds - 5 minutes 0 5 minutes + 0 Other information
Other migrations pending on GitLab.com
Migration Type Total runtime Result DB size change 20250301122035 - AddProjectIdToPushEventPayloads Regular 7.4 s +0.00 B 20250205175341 - QueueBackfillPipelineExecutionPoliciesConfigLinks Post deploy 6.4 s +8.00 KiB [note] 20250210064918 - ValidateApprovalMergeRequestRulesProjectIdNotNullConstraint Post deploy 7.0 s +0.00 B 20250213231531 - FinalizeHkBackfillProtectedTagCreateAccessLevelsProjectId Post deploy 6.2 s +0.00 B 20250218025905 - SyncFkForBuildsAutoCanceledById Post deploy 9.6 s +8.00 KiB [note] 20250220231823 - FinalizeHkBackfillReservedStorageBytes Post deploy 6.2 s +0.00 B 20250225075411 - ValidateMergeRequestReviewersProjectIdNotNull Post deploy 6.9 s +0.00 B 20250225075609 - ValidatePackagesBuildInfosProjectIdNotNull Post deploy 6.8 s +0.00 B 20250226231923 - FinalizeHkFixNamespaceIdForWorkItemParentLinks Post deploy 6.2 s +0.00 B 20250227102407 - AddIndexForOrganizationIdOnForkNetworks Post deploy 7.3 s +8.00 KiB [note] 20250227231923 - FinalizeHkBackfillMlCandidateMetricsProjectId Post deploy 6.2 s +0.00 B 20250227232246 - FinalizeHkBackfillCiBuildsRunnerSessionProjectId Post deploy 7.3 s +0.00 B 20250301122036 - PrepareIndexPushEventPayloadsOnProjectId Post deploy 7.2 s +8.00 KiB [note] 20250301122037 - AddPushEventPayloadsProjectIdTrigger Post deploy 6.7 s +8.00 KiB [note] 20250301122038 - QueueBackfillPushEventPayloadsProjectId Post deploy 6.4 s +0.00 B 20250301125533 - AddScanResultPoliciesProjectIdTrigger Post deploy 6.7 s +0.00 B 20250301125534 - QueueBackfillScanResultPoliciesProjectId Post deploy 6.4 s +0.00 B 20250301125855 - IndexScanResultPoliciesOnNamespaceId Post deploy 7.3 s +8.00 KiB [note] 20250301125856 - AddScanResultPoliciesNamespaceIdFk Post deploy 7.4 s +0.00 B 20250301125857 - AddScanResultPoliciesNamespaceIdTrigger Post deploy 6.8 s +0.00 B 20250301125858 - QueueBackfillScanResultPoliciesNamespaceId Post deploy 6.4 s +0.00 B 20250301231529 - FinalizeHkBackfillProtectedEnvironmentDeployAccessLevelsProtected8203 Post deploy 6.3 s +0.00 B 20250302231828 - FinalizeHkMakeSecurityPolicyBotsPrivate Post deploy 6.2 s +0.00 B 20250302231854 - FinalizeHkBackfillMlCandidateParamsProjectId Post deploy 6.2 s +0.00 B Clone details
Clone ID Clone Created At Clone Data Timestamp Expected Removal Time database-testing-4253188-17478902-main
2025-03-04T13:18:47Z 2025-03-04T11:26:27Z 2025-03-05 02:02:22 +0000 database-testing-4253188-17478902-ci
2025-03-04T13:18:47Z 2025-03-04T12:45:05Z 2025-03-05 02:02:22 +0000
Brought to you by gitlab-org/database-team/gitlab-com-database-testing. Epic
Edited by ****added database-testing-automation label
changed milestone to %17.10
- Resolved by Michał Zając
Hi @ngala, could you please do the initial backend and groupknowledge review for this change?
Please forward this to a backend maintainer and a database reviewer if everything looks good. Thank you!
added workflowin review label
requested review from @ngala
mentioned in issue #493768
requested review from @pskorupa
added pipeline:mr-approved label
added pipelinetier-2 label
requested review from @ifarkas
added Data WarehouseNot Impacted label and removed Data WarehouseImpact Check label
added databasereviewed label and removed databasereview pending label
requested review from @Quintasan
- Resolved by Shane Maglangit
added 1210 commits
-
c8c57288...38c84474 - 1208 commits from branch
master
- 098900ba - Add and backfill wiki_page_slugs for namespace_id
- 93adf4f2 - Add reverse_lock_order to wiki_page_slugs sharding key FK migration
-
c8c57288...38c84474 - 1208 commits from branch
E2E Test Result Summary
allure-report-publisher
generated test report!e2e-test-on-gdk:
test report for 93adf4f2expand test summary
+------------------------------------------------------------------+ | suites summary | +-------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +-------------+--------+--------+---------+-------+-------+--------+ | Plan | 82 | 0 | 8 | 2 | 90 | ✅ | | Create | 138 | 0 | 22 | 3 | 160 | ✅ | | Govern | 79 | 0 | 13 | 1 | 92 | ✅ | | Fulfillment | 2 | 0 | 7 | 0 | 9 | ✅ | | Verify | 48 | 0 | 24 | 1 | 72 | ✅ | | Data Stores | 31 | 0 | 10 | 0 | 41 | ✅ | | Release | 5 | 0 | 1 | 0 | 6 | ✅ | | Manage | 1 | 0 | 9 | 0 | 10 | ✅ | | Package | 24 | 0 | 14 | 1 | 38 | ✅ | | Monitor | 8 | 0 | 12 | 0 | 20 | ✅ | | Secure | 5 | 0 | 3 | 1 | 8 | ✅ | | Configure | 0 | 0 | 3 | 0 | 3 | ➖ | | Ai-powered | 0 | 0 | 2 | 0 | 2 | ➖ | | ModelOps | 0 | 0 | 1 | 0 | 1 | ➖ | | Analytics | 2 | 0 | 0 | 0 | 2 | ✅ | | Growth | 0 | 0 | 2 | 0 | 2 | ➖ | +-------------+--------+--------+---------+-------+-------+--------+ | Total | 425 | 0 | 131 | 9 | 556 | ✅ | +-------------+--------+--------+---------+-------+-------+--------+
e2e-test-on-cng:
test report for 93adf4f2expand test summary
+------------------------------------------------------------------+ | suites summary | +-------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +-------------+--------+--------+---------+-------+-------+--------+ | Govern | 82 | 0 | 12 | 0 | 94 | ✅ | | Plan | 86 | 0 | 8 | 0 | 94 | ✅ | | Create | 142 | 0 | 22 | 0 | 164 | ✅ | | Verify | 49 | 0 | 23 | 0 | 72 | ✅ | | Package | 29 | 0 | 15 | 0 | 44 | ✅ | | Monitor | 8 | 0 | 12 | 0 | 20 | ✅ | | Manage | 1 | 0 | 9 | 0 | 10 | ✅ | | Secure | 5 | 0 | 3 | 0 | 8 | ✅ | | ModelOps | 0 | 0 | 1 | 0 | 1 | ➖ | | Growth | 0 | 0 | 2 | 0 | 2 | ➖ | | Fulfillment | 2 | 0 | 7 | 0 | 9 | ✅ | | Data Stores | 31 | 0 | 10 | 0 | 41 | ✅ | | Ai-powered | 0 | 0 | 2 | 0 | 2 | ➖ | | Analytics | 2 | 0 | 0 | 0 | 2 | ✅ | | Configure | 0 | 0 | 3 | 0 | 3 | ➖ | | Release | 5 | 0 | 1 | 0 | 6 | ✅ | +-------------+--------+--------+---------+-------+-------+--------+ | Total | 442 | 0 | 130 | 0 | 572 | ✅ | +-------------+--------+--------+---------+-------+-------+--------+
Edited by ****requested review from @Quintasan
added databaseapproved label and removed databasereviewed label
added pipelinetier-3 pipeline:run-e2e-omnibus-once labels and removed pipelinetier-2 label
Before you set this MR to auto-merge
This merge request will progress on pipeline tiers until it reaches the last tier: pipelinetier-3. We will trigger a new pipeline for each transition to a higher tier.
Before you set this MR to auto-merge, please check the following:
- You are the last maintainer of this merge request
- The latest pipeline for this merge request is pipelinetier-3 (You can find which tier it is in the pipeline name)
- This pipeline is recent enough (created in the last 8 hours)
If all the criteria above apply, please set auto-merge for this merge request.
See pipeline tiers and merging a merge request for more details.
Generated bygitlab_quality-test_tooling
.
Slow tests detected in this merge request. These slow tests might be related to this merge request's changes.Click to expand
Job File Name Duration Expected duration #9371949736 spec/lib/gitlab/database/decomposition/migrate_spec.rb#L103
Gitlab::Database::Decomposition::Migrate#process! when the checks pass copies main database to ci database 27.27 s < 27.12 s #9371949889 spec/lib/gitlab/database/decomposition/migrate_spec.rb#L103
Gitlab::Database::Decomposition::Migrate#process! when the checks pass copies main database to ci database 27.84 s < 27.12 s Edited by ****added rspec:slow test detected label
started a merge train
Hello @smaglangit
The database team is looking for ways to improve the database review process and we would love your help!
If you'd be open to someone on the database team reaching out to you for a chat, or if you'd like to leave some feedback asynchronously, just post a reply to this comment mentioning:
@gitlab-org/database-team
And someone will be by shortly!
Thanks for your help!
This message was generated automatically. Improve it or delete it.
mentioned in commit d1cbb6d9
mentioned in incident gitlab-org/quality/engineering-productivity/master-broken-incidents#11137 (closed)
added workflowstaging-canary label and removed workflowin review label
added workflowcanary label and removed workflowstaging-canary label