Skip to content

Conversation

@gjcolombo
Copy link
Contributor

@gjcolombo gjcolombo commented Apr 17, 2023

This is PR no. 6 in the live migration series. The work in this PR will be used in the next PR in this sequence.


Add a sled agent API that allows Nexus to set or clear the migration ID and destination Propolis ID in an instance's runtime state. This advances the instance's Propolis generation number.

Sled agent requires callers to furnish the instance runtime state they intend to transition from. This lets Nexus use this API and an instance's migration ID field to arbitrate between multiple concurrent migration attempts: if an instance is running with Propolis generation X, and two (or more) migration sagas observe that generation, then only one will successfully set migration IDs and be allowed to continue migration.

Subsequent commits will update the migration saga to use this API.

Add a sled agent API that allows Nexus to set or clear the migration ID and
destination Propolis ID in an instance's runtime state. This advances the
instance's Propolis generation number.

Sled agent requires callers to furnish the instance runtime state they intend to
transition from. This lets Nexus use this API and an instance's migration ID
field to arbitrate between multiple concurrent migration attempts: if an
instance is running with Propolis generation X, and two (or more) migration
sagas observe that generation, then only one will successfully set migration IDs
and be allowed to continue migration.

Subsequent commits will update the migration saga to use this API.
@gjcolombo gjcolombo force-pushed the gjcolombo/lets-migrate/6-set-migration-ids branch from b5381f4 to 0d16067 Compare April 19, 2023 20:49
@gjcolombo
Copy link
Contributor Author

Going to go ahead and merge this one so that the changes to the migration saga proper can go up for review.

@gjcolombo gjcolombo merged commit dee9d45 into main Apr 20, 2023
@gjcolombo gjcolombo deleted the gjcolombo/lets-migrate/6-set-migration-ids branch April 20, 2023 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants