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 Tue, 31 Dec 2013 03:41:54 GMT

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

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

Hi [~gustavoanatoly], 
> about _Sink_ API usage, I found only inside _Canary_ Tool
This API is not depended by other codes in HBase project, but I mentioned
> The public API is broken, since the Sink interface is changed
which means that if I am a HBase user, I may want to extends this _'Sink'_ interface for other
monitoring purpose if I see the [API doc |http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/tool/Canary.html#nested_class_summary];
For example, I could extend the _Sink_ API to provide a JDBC impl. to let the _Sink_ push
data to RDBMS for monitoring purpose, or something like that. The _Sink_ interface had been
_*public*_ from first release till now (0.92, you can see HBASE-4393), so I am not sure how
many users in the world would use this kind of feature to make their _Sink_ impl.; I need
to point it out that this is a public API change and which might impact users' currently smooth
running monitoring mechanism. Simply change the API and point it out in the release notes
is a good way as well, I think.

BTW, why we remove the _table.close()_ in the patch-v02 ?
{code}
> @@ -472,17 +472,13 @@
>        return;
>      }
>  
> -    try {
> -      for (HRegionInfo region : admin.getTableRegions(tableDesc.getName())) {
> -        try {
> -          sniffRegion(admin, sink, region, table);
> -        } catch (Exception e) {
> -          sink.publishReadFailure(region, e);
> -          LOG.debug("sniffRegion failed", e);
> -        }
> +    for (HRegionInfo region : admin.getTableRegions(tableDesc.getName())) {
> +      try {
> +        sniffRegion(admin, sink, region, table);
> +      } catch (Exception e) {
> +        sink.publishReadFailure(region, e);
> +        LOG.debug("sniffRegion failed", e);
>        }
> -    } finally {
> -      table.close(); // <--- I mean here by takeshi.miao
>      }
{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.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