hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "HBase Review Board (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-3348) Allow Observers to completely override base function
Date Wed, 15 Dec 2010 02:17:03 GMT

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

HBase Review Board commented on HBASE-3348:
-------------------------------------------

Message from: "Andrew Purtell" <apurtell@apache.org>

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/1295/
-----------------------------------------------------------

Review request for hbase, Jonathan Gray and Mingjie Lai.


Summary
-------

Currently an observer can act as a filter or translator but cannot stop a subsequent call
down to the base method for get, put, delete, etc. This patch allows observers to 1) keep
any subsequently chained observer from executing, or 2) prevent default behavior from executing.
This latter option allows a preXXX hook to completely reimplement something.

I also found and fixed some logic bugs in coprocessor framework integration in HRegion.

I will squelch the added extraneous whitespace upon commit.


This addresses bug HBASE-3348.
    http://issues.apache.org/jira/browse/HBASE-3348


Diffs
-----

  src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserverCoprocessor.java 134ed2f

  src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorEnvironment.java 654b179 
  src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java 10dfff4 
  src/main/java/org/apache/hadoop/hbase/regionserver/CoprocessorHost.java c57ca0c 
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java cf9cad0 
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 8248f5f 
  src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java 345790f 
  src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverStacking.java 9ef3562


Diff: http://review.cloudera.org/r/1295/diff


Testing
-------

All coprocessor unit tests pass. No failures of other unit tests observed that might be related
to these changes.


Thanks,

Andrew




> Allow Observers to completely override base function
> ----------------------------------------------------
>
>                 Key: HBASE-3348
>                 URL: https://issues.apache.org/jira/browse/HBASE-3348
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.92.0
>
>         Attachments: HBASE-3348.patch
>
>
> Currently an observer can act as a filter or translator but cannot stop a subsequent
call down to the base method for get, put, delete, etc. This means an observer cannot completely
override the base function. To deal with this we can:
> - Change the preXXX methods to return the same type as the postXXX methods, the same
return type of the base method. 
> - Extend {{Coprocessor.Environment}} with methods that get/set a "should continue" flag.

> The framework should check the "should continue" flag before calling the base method.
If not, just return what was returned by the preXXX method. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message