Page MenuHomePhabricator

Introduce storage patch "phases" to allow index-rebuilding patches to execute after worker queue schema changes
ClosedPublic

Authored by epriestley on Jan 29 2021, 12:23 AM.
Tags
None
Referenced Files
F13051055: D21529.id51260.diff
Fri, Apr 19, 3:20 AM
F13051054: D21529.id51248.diff
Fri, Apr 19, 3:20 AM
F13051053: D21529.id.diff
Fri, Apr 19, 3:20 AM
Unknown Object (File)
Thu, Apr 11, 4:30 AM
Unknown Object (File)
Feb 22 2024, 8:40 PM
Unknown Object (File)
Jan 25 2024, 2:30 AM
Unknown Object (File)
Jan 23 2024, 9:48 PM
Unknown Object (File)
Jan 9 2024, 7:59 AM
Subscribers
Restricted Owners Package

Details

Summary

Ref T13591. Some storage patches queue worker tasks, currently always to rebuild search indexes.

These patches can not execute in creation order if a later patch modifies the worker task table, since they'll try to perform a modern INSERT against an out-of-date table schema. Such a modification is desirable in the context of T13591, but making it causes these patches to fail.

Patches have an existing "after" mechanism which allows them to have explicit dependencies. This mechanism could be used to resolve this issue, but all patches with a dependency like this would need to be updated every time the queue table changes.

Instead, introduce "phases" to provide broader ordering rules. There are now two phases: "default" and "worker". Patches in the "worker" phase execute after patches in the "default" phase.

Phases may eventually be further separated, but

Test Plan
  • Ran bin/storage status, saw patches annotated with phases.
  • Will apply containerPHID changes on top of this.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable