[
https://issues.apache.org/jira/browse/HBASE-10147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13858374#comment-13858374
]
takeshi.miao commented on HBASE-10147:
--------------------------------------
[~stack] & [~gustavoanatoly]
This patch also looks good to me, but still has some questions need to verify,
are...
1. The public API is broken, since the _Sink interface_ is changed
{code}
@@ -66,7 +66,8 @@
public interface Sink {
public void publishReadFailure(HRegionInfo region, Exception e);
public void publishReadFailure(HRegionInfo region, HColumnDescriptor
column, Exception e);
- public void publishReadTiming(HRegionInfo region, HColumnDescriptor
column, long msTime);
+ public void publishInfo(HRegionInfo region, ServerName serverName);
+ public void publishInfoTimeout(HRegionInfo region, ServerName serverName);
}
{code}
I not sure whether it is acceptable code change, that is ok if stack says ok,
due to I think currently that not many users really extend this _interface_ ...
?
2. I think that the _errorCode_ property would be better to be _volatile_. due
to it would be manipulated by the _monitor_ thread, and read by _main_ thread
in the same time.
{code}
#140 private static int errorCode;
// changed to
#140 private static volatile int errorCode;
{code}
And other changed static properties will be ok due to their value manipulation
are not intervened between two threads in the same time.
{code}
#136 private static long timeout = DEFAULT_TIMEOUT;
#137 private static boolean failOnError = true;
//...
#139 private static long startTimeCanary;
{code}
3. Just a little reminder that the _this_ reference shall be removed due to
_failOnError_ is changed to _static_
{code}
#224 this.failOnError = Boolean.parseBoolean(args[i]);
//...
#249 if (this.failOnError && monitor.hasError()) {
//...
#255 if (this.failOnError && monitor.hasError()) {
{code}
FYR~
> Canary additions
> ----------------
>
> Key: HBASE-10147
> URL: https://issues.apache.org/jira/browse/HBASE-10147
> Project: HBase
> Issue Type: Improvement
> Reporter: stack
> Assignee: Gustavo Anatoly
> Attachments: HBASE-10147.patch, HBASE-10147.patch, HBASE-10147.patch,
> HBASE-10147.patch
>
>
> I've been using the canary to quickly identify the dodgy machine in my
> cluster. It is useful for this. What would make it better would be:
> + Rather than saying how long it took to get a region after you have gotten
> the region, it'd be sweet to log BEFORE you went to get the region the
> regionname and the server it is on. I ask for this because as is, I have to
> wait for the canary to timeout which can be a while.
> + Second ask is that when I pass the -t, that when it fails, it says what it
> failed against -- what region and hopefully what server location (might be
> hard).
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)