[ 
https://issues.apache.org/jira/browse/HBASE-10147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13861158#comment-13861158
 ] 

takeshi.miao commented on HBASE-10147:
--------------------------------------

[~gustavoanatoly]
1. For backward compatible for method _Sink.publishReadTiming_, I think that we 
still need to keep the method calls in the code, which means that the following 
code snippet should not be removed...
{code}
@@ -521,12 +537,10 @@
           stopWatch.start();
           table.get(get);
           stopWatch.stop();
-          sink.publishReadTiming(region, column, stopWatch.getTime());
         } else {
           stopWatch.start();
           rs = table.getScanner(scan);
           stopWatch.stop();
-          sink.publishReadTiming(region, column, stopWatch.getTime());
         }
       } catch (Exception e) {
         sink.publishReadFailure(region, column, e);
@@ -624,7 +662,6 @@
             table.getScanner(scan);
             stopWatch.stop();
           }
-          this.getSink().publishReadTiming(tableName, serverName, 
stopWatch.getTime());
         } catch (TableNotFoundException tnfe) {
           // This is ignored because it doesn't imply that the regionserver is 
dead
         } catch (TableNotEnabledException tnee) {
{code}

2. We can leave the method impl for _Sink.publishReadTiming_ to do nothing
{code}
    public static class StdOutSink implements Sink {
      //...
      public void publishReadTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime) {
        //DO NOTHING, for API backward compatibility
      }
      //...
    }
{code}

3. The _Deprecated_ should put on the _interface_
{code}
  public interface Sink {
      //...
      /**
       * This method will be removed in the future release.
       * @deprecated {@link https://issues.apache.org/jira/browse/HBASE-10147}
       */
      @Deprecated
      public void publishReadTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime);
      //...
    }
    
    public static class StdOutSink implements Sink {
      //...
      @Override
      @Deprecated
      public void publishReadTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime) {
        //...
      }
      //...
    }
  }
{code}


> 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-v2.patch, HBASE-10147-v3.patch, 
> 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)

Reply via email to