hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Harry Harpham (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15417) Calls to ObserverContext#bypass in a region observer's prePut method are inconsistent
Date Tue, 08 Mar 2016 20:53:40 GMT

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

Harry Harpham commented on HBASE-15417:

I see. However, I don't believe that is the behavior I saw. In a batch with 4 puts, I called
bypass on 3 of them, including the very first put in the batch.  All 4 puts made it to the
postPut hook.  If I understood your description correctly, none of them should have resulted
in a postPut call.  Is that correct?

Also would you mind pointing me to documentation on bypass being a per-operation setting.
 I'm only asking because when I first noticed this behavior, I tried to dig around and see
what the correct behavior was, but I had trouble finding anything definitive.  It would be
nice to know where to look for stuff like this in the future.

Lastly, I just want to say again that I haven't had a chance to test this against a cluster,
so it is possible that this is a bug in the HBaseTestingUtility (if there is any difference
in how the testing utility would handle this scenario).

> Calls to ObserverContext#bypass in a region observer's prePut method are inconsistent
> -------------------------------------------------------------------------------------
>                 Key: HBASE-15417
>                 URL: https://issues.apache.org/jira/browse/HBASE-15417
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors
>            Reporter: Harry Harpham
>            Priority: Minor
> Calling ctx.bypass(), where ctx is the ObserverContext object passed in to the region
observer's prePut method, results in some inconsistent behavior.
> If every other put in the batch is also bypassed, the region observer sees none of these
in its postPut method.  If there is at least one other put which is not bypassed, the region
observer sees all of the puts in the batch _including those which were bypassed_.
> The end result is that, after bypassing a put, that put may or may not end up in the
region observer's postPut method.  This behavior is dependent solely on which other puts the
bypassed put is batched together with.
> I tried to find existing tickets for this issue, but was unable to.  Apologies if I missed
something.  The closest issues I could find were HBASE-4331 and HBASE-11503, but those didn't
seem to quite hit it.
> Additionally, I threw together a quick demonstration of this issue: https://github.com/hwh33/bypass-inconsistency-demo.
 You can run that demo in memory using the testing utility or against a running cluster. 
I actually haven't had time to test it against a cluster though, so you may encounter bugs
if running in that mode (but hopefully not!).

This message was sent by Atlassian JIRA

View raw message