-
Notifications
You must be signed in to change notification settings - Fork 15
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
Implement repair queue #692
Conversation
7f482c6
to
e1841a9
Compare
e1841a9
to
3105433
Compare
3105433
to
ffa81f4
Compare
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.
LGTM
ffa81f4
to
ce4fd3f
Compare
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.
LGTM
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.
I'm sorry for the delayed review.
"address": entry.Address, | ||
log.FnError: err, | ||
}) | ||
entry.Status = cke.RepairStatusProcessing |
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.
In the reboot queue, the "queued" status is set when drain is failed.
Why is processing
status used in repaire queue?
https://github.com/cybozu-go/cke/blob/v1.27.3/op/reboot.go#L552
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.
@masa213f
I introduced the processing
status for the repair queue to separate (a) the status of a queue entry and (b) the status of a step in an entry.
It would be confusing to manage both (a) and (b) in one field.
Each repair queue entry is designed to have multiple repair steps.
Currently we have three types of step statuses, waiting
, draining
, and watching
.
When processing an entry, we should manage the loop of waiting
, draining
, and watching
.
Furthermore, we may add new step statuses to extend the repair step's ability.
It would be hard to manage the transition diagram of the mixture of the entry statuses and the step statuses while increasing the types of step statuses.
I prefer to separate the entry statuses and the step statuses for simplicity.
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.
Thank you for the description. I understood.
When a node's repair waits for the drain in step 2, the CKE will execute the other node's repair.
And then, more entries than "max_concurrent_repairs" will be in the "processing" status.
Signed-off-by: morimoto-cybozu <[email protected]>
Signed-off-by: morimoto-cybozu <[email protected]>
Signed-off-by: morimoto-cybozu <[email protected]>
Signed-off-by: morimoto-cybozu <[email protected]>
Signed-off-by: morimoto-cybozu <[email protected]>
cfa2b32
to
60afa8c
Compare
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.
LGTM
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.
LGTM
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.
LGTM
Signed-off-by: morimoto-cybozu [email protected]