-
Notifications
You must be signed in to change notification settings - Fork 53
quiesce needs to keep track of blueprint ids #8919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dap/handoff-quiesce-1
Are you sure you want to change the base?
Conversation
Some sample output from the new Initial state:
Enabled blueprint execution:
Created a demo saga:
Start quiescing:
Complete the demo saga:
|
nexus/types/src/quiesce.rs
Outdated
/// whether a saga recovery operation is ongoing, and if one is: | ||
/// - what `reassignment_generation` was when it started | ||
/// - which blueprint id we'll be fully caught up to upon completion | ||
#[serde(skip)] // XXX-dap |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
XXX
here because we don't want to skip this field?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes -- sorry I missed that! This is a problem because we don't support a tuple in this context in the OpenAPI spec. I will replace it with a struct.
nexus/types/src/quiesce.rs
Outdated
} | ||
}; | ||
|
||
q.latch_drained_blueprint_id(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it correct to latch this even if quiescing
is false?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the function checks that.
edit: to be precise, it is not correct to latch the value in this case. The function latch_drained_blueprint_id
is intended to be called at any time and will only latch the state if appropriate, and it checks that. Is there a better name for that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
latch_blueprint_id_if_drained()
maybe?
This is the first part of #8859. This PR adds the logic to keep track of this. Once we have db_metadata_nexus records (currently #8845), the last bit of 8859 will be to update those records whenever this value changes.
This is still a work in progress. I need to add some new tests and also put this into
omdb
.