hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "takeshi.miao (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10147) Canary additions
Date Fri, 03 Jan 2014 03:23:53 GMT

    [ 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)

Mime
View raw message