hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Gray <jg...@facebook.com>
Subject FW: Review Request: HBASE-2001 RegionObserver
Date Thu, 03 Jun 2010 18:25:36 GMT
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.hbase.org/r/96/#review124
-----------------------------------------------------------



src/main/java/org/apache/hadoop/hbase/coprocessor/Coprocessor.java
<http://review.hbase.org/r/96/#comment698>

    What is purpose of this?



src/main/java/org/apache/hadoop/hbase/coprocessor/Coprocessor.java
<http://review.hbase.org/r/96/#comment694>

    Split decisions will not be made post-compaction as they are now after HBASE-2375 goes
in.  That decision will actually be made at flush time, most likely post-flush though we'll
know at the start whether it will end up needing to split.



src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
<http://review.hbase.org/r/96/#comment695>

    So a coprocessor implementation would potentially implement Coprocessor and RegionObserver?
 Notifications of higher level events happen through Coprocessor, this is for lower level
hooks?  Maybe a bit more detail in class comment to describe difference between the two interfaces.



src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
<http://review.hbase.org/r/96/#comment701>

    This makes sense now reading the rest of the code.  But it seems that the Coprocessor
is in fact the "observer" that just gets notified of actions while this observer is actually
the "processor" that can manipulate stuff?



src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
<http://review.hbase.org/r/96/#comment696>

    And descending timestamp



src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
<http://review.hbase.org/r/96/#comment697>

    This is great javadoc



src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
<http://review.hbase.org/r/96/#comment699>

    Gets are called after the Get is performed, Puts and Deletes are called before, correct?
    
    Would there be a use case for pre-Get hook?  Just wondering.



src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<http://review.hbase.org/r/96/#comment700>

    Javadoc says it's called after the split happens but before report to master.  Seems that
this happens once we create the new HRegions but before we actually do the swap.  What exactly
would/could a coprocessor be doing in this window?
    
    One thing to be aware of is the master changes coming are going to make a split run entirely
on the RS including the edits to META, closing of the parent, and opening of the children.
 Where in that process would this hook make sense?


- Jonathan


On 2010-05-31 22:47:25, Andrew Purtell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://review.hbase.org/r/96/
> -----------------------------------------------------------
> 
> (Updated 2010-05-31 22:47:25)
> 
> 
> Review request for hbase.
> 
> 
> Summary
> -------
> 
> This patch is the parts of the HBASE-2001 patch which implements support for the RegionObserver
interface. This enables extension of the regionserver through stacking dynamically loaded
classes i.e. from jars on HDFS onto upcalls from HRegion. I made some improvements over the
other patch and added a test case. There are other parts of 2001 which need some thought and
some work and would not be useful without client side support. This is the part which could
be immediately useful. 
> 
> Submitted for feedback. 
> 
> Incorporates a user suggestion and Stack +1 about hooking compaction.
> 
> 
> This addresses bug HBASE-2001.
>     http://issues.apache.org/jira/browse/HBASE-2001
> 
> 
> Diffs
> -----
> 
>   src/main/java/org/apache/hadoop/hbase/coprocessor/Coprocessor.java PRE-CREATION 
>   src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java PRE-CREATION

>   src/main/java/org/apache/hadoop/hbase/regionserver/CoprocessorHost.java PRE-CREATION

>   src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 2413e98 
>   src/main/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java
71f738e 
>   src/main/java/org/apache/hadoop/hbase/regionserver/Store.java 515b42f 
>   src/test/java/org/apache/hadoop/hbase/coprocessor/TestClassloading.java PRE-CREATION

>   src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java PRE-CREATION

>   src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
PRE-CREATION 
>   src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverStacking.java PRE-CREATION

> 
> Diff: http://review.hbase.org/r/96/diff
> 
> 
> Testing
> -------
> 
> All the new unit tests plus TestHRegion pass locally.
> 
> 
> Thanks,
> 
> Andrew
> 
>

Mime
View raw message