Commit graph

9 commits

Author SHA1 Message Date
Yorick Peterse
7f30bb9c29
Run background migrations with a minimum interval
This adds a minimum interval to BackgroundMigrationWorker, ensuring
background migrations of the same class only run once every 5 minutes.
This prevents a thundering herd problem where scheduled migrations all
run at once due to their delays having been expired (e.g. as the result
of a queue being paused for a long time).

If a job was recently executed it's rescheduled with a delay that equals
the remaining time of the job's lease. This means that if the lease
expires in two minutes we only need to wait two minutes, instead of
five.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/41624
2018-01-05 16:23:25 +01:00
Douwe Maan
1e6ca3c41e Consistently schedule Sidekiq jobs 2017-12-05 11:59:39 +01:00
Douwe Maan
0b15570e49 Add ApplicationWorker and make every worker include it 2017-12-05 11:59:39 +01:00
Grzegorz Bizon
5e2baaf39f Improve exception description in bg migrations 2017-07-07 15:08:15 +02:00
Grzegorz Bizon
939473076a Add description to exception in bg migrations worker 2017-07-07 15:08:15 +02:00
Grzegorz Bizon
01128b130b Use integers to schedule delayed background migrations 2017-07-07 15:08:15 +02:00
Grzegorz Bizon
c2efb8acc6 Use ActiveRecord 5 batching to schedule bg migration 2017-07-07 15:08:15 +02:00
Grzegorz Bizon
945cdf326e Make it possible to schedule bg migrations in bulk 2017-07-07 15:08:15 +02:00
Yorick Peterse
d83ee2bbd1
Add the ability to perform background migrations
Background migrations can be used to perform long running data
migrations without these blocking a deployment procedure.

See MR https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11854 for
more information.
2017-06-12 13:24:04 +02:00