-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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-22874] Canary should not be IA.Public #580
Conversation
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
@jatsakthi Would like to see this commit in 1.3 release also. Apologies if I am requesting to review too many PR's. I will really appreciate if you can review this PR. Thank you ! |
@InterfaceAudience.Private | ||
public final class Canary implements Tool { | ||
@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS) | ||
public class Canary implements Tool, CanaryInterface { |
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.
Can Canary be an Interface?
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.
Yeah please make the interface Canary and the tool CanaryTool or CanaryImpl or something.
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.
@saintstack @busbey Addressed your comments in latest commit. Could you please review. Thank you !
On 'daemon' api option, it is an odd option to expose IMO. Would think it daemon would be set always when calling something via API (i.e. in context). Interval as argument seems fine. What you thinking? One error option makes sense. " Feels like bug to me. " Me too. From an API, I'd think you'd be passing an executor? |
Thank you @saintstack for your review.
If I understand the interval parameter correctly, it will run the given canary periodically every interval seconds. If we are running the Canary via ToolRunner, it will create a new process and we can make it run every few seconds but if we call via api from some application, then it is the application's responsibility to call canary every interval seconds. |
Makes sense. Interval is for the daemon version of Canary which makes no sense when being called from API. Yeah, no 'interval'. No 'daemon' option either. |
96fd5eb
to
80c3bac
Compare
💔 -1 overall
This message was automatically generated. |
@saintstack @busbey could you guys please make another pass ? Thank you ! |
overall this looks good to me. I've made a correction locally to make sure |
…tool implementation Closes #580 * Canary is now an IA.Public interface * CanaryTool is now the implementation Signed-off-by: Sean Busbey <busbey@apache.org>
Thank you @busbey for the review and merge. Let me know if you want me to create PR for branch-1 or branch-2. |
@shahrs87 I am waiting for this commit to go into branch-1.3 for the 1.3 release. Could you please take care of the backports to branch-1 & branch-2 as well? |
I am relatively new to this project. I don't know the protocol of who handles the backport to branch-1 and branch-2. I was of the view that committer will take care of backports and if it needs more work than simple cherry-pick then he/she will let me know. In any case, I am fine to create a new PR for branch-1 and branch-2. Please let me know. |
Also I see that @busbey merged this commit to branch-2.1 and branch-2.2. So I think he is taking care of backports. :) |
…tool implementation Closes #580 * Canary is now an IA.Public interface * CanaryTool is now the implementation Branch-1 specific changes for differences in APIs and cleanup of the ref guide using a classname. Co-authored-by: Sean Busbey <busbey@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org>
…tool implementation Closes #580 * Canary is now an IA.Public interface * CanaryTool is now the implementation Branch-1.3 specific changes for differences in APIs and cleanup of the ref guide using a classname. Co-authored-by: Sean Busbey <busbey@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org>
…tool implementation Closes #580 * Canary is now an IA.Public interface * CanaryTool is now the implementation Branch-1 specific changes for differences in APIs and cleanup of the ref guide using a classname. Co-authored-by: Sean Busbey <busbey@apache.org> Signed-off-by: Sean Busbey <busbey@apache.org>
…tool implementation Closes apache#580 * Canary is now an IA.Public interface * CanaryTool is now the implementation Signed-off-by: Sean Busbey <busbey@apache.org> (cherry picked from commit b5a3967) (cherry picked from commit f37105c) Change-Id: I5023d011922e17398d76dd8585008e0eccb9e989
Things I changed in this PR:
Outstanding questions that I need help from community.
Can we just create 1 conf property for usage via API. We still will support all 3 arguments via ToolRunner interface.
For some unknown reason asfgit user closed my earlier PR: #565 so I created another one.