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
HBASE-23322 [hbck2] Simplification on HBCKSCP scheduling #855
Conversation
💔 -1 overall
This message was automatically generated. |
LGTM |
Thanks @binlijin . I'm testing on cluster. Found condition where there may be a reference still in Master to a Server though it failed its SCP. In this case, we want to force through out SCP. The code currently bypasses thinking it is mid-processing. Will add a piece so can ride over this state and get the SCP scheduled regardless. Thanks for review. |
331dddb
to
eb42696
Compare
💔 -1 overall
This message was automatically generated. |
Pushed manually after fixing the checkstyle complaint. |
* SCP running. | ||
* @return pid of scheduled SCP or {@link Procedure#NO_PROC_ID} if none scheduled. | ||
*/ | ||
public long submitServerCrash(ServerName serverName, boolean shouldSplitWal, boolean force) { |
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 don't love this force
flag. I get that all we have to look for are side-effects, but seems like there should be a way of accounting the actively running procedures and at least wait for the current one to finish before starting the next. Or maybe the procedure implementations can negotiate the mutual exclusion lock between themselves? This could would unconditionally schedule the action and the action itself would refuse to run as long as another one is in flight. And then, of course, the second action might wake up and find that it has no work to do.
No description provided.