hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Yates (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5827) [Coprocessors] Observer notifications on exceptions
Date Wed, 27 Jun 2012 00:01:47 GMT

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

Jesse Yates commented on HBASE-5827:
------------------------------------

bq.the postXXX hook is already what you are calling a success handler. 

Yup, just trying to formalize the concept a little bit.

bq. nvoking the failure handler from a catch clause would be like failXXX but with another
name (and class), right?

Yeah, but I'd rather have that encapsulated away from the main code, so the calling methods
would just be able to call

{noformat}
...
internalPutter.put(stuff)
...
{noformat}

But again, basically what you have already (clearly more thought through than I did in the
last 30mins). I'll have to take some time to see if a bigger redesign is warranted. 

TL;DR +1 on an onXXXXFailure method + a deprecated postXXX with error in context for compatibility
                
> [Coprocessors] Observer notifications on exceptions
> ---------------------------------------------------
>
>                 Key: HBASE-5827
>                 URL: https://issues.apache.org/jira/browse/HBASE-5827
>             Project: HBase
>          Issue Type: Improvement
>          Components: coprocessors
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>
> Benjamin Busjaeger wrote on dev@:
> {quote}
> Is there a reason that RegionObservers are not notified when a get/put/delete fails?
Suppose I maintain some (transient) state in my Coprocessor that is created during preGet
and discarded during postGet. If the get fails, postGet is not invoked, so I cannot remove
the state.
> If there is a good reason, is there any other way to achieve the same thing? If not,
would  it be possible to add something the snippet below to the code base?
> {code}
>     // pre-get CP hook
>     if (withCoprocessor && (coprocessorHost != null)) {
>       if (coprocessorHost.preGet(get, results)) {
>         return results;
>       }
>     }
> +    try{
>     ...
> +    } catch (Throwable t) {
> +        // failed-get CP hook
> +        if (withCoprocessor && (coprocessorHost != null)) {
> +          coprocessorHost.failedGet(get, results);
> +        }
> +        rethrow t;
> +    }
>     // post-get CP hook
>     if (withCoprocessor && (coprocessorHost != null)) {
>       coprocessorHost.postGet(get, results);
>     }
> {code}
> {quote}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message