hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4321) Add more comprehensive region split calculator
Date Fri, 02 Sep 2011 18:33:12 GMT

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

jiraposter@reviews.apache.org commented on HBASE-4321:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1703/#review1735
-----------------------------------------------------------



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3957>

    Instead of this, why not make:
    
    interface KeyRange {
      byte[] getStartKey();
      byte[] getEndKey();
    }
    
    and then a Comparator<KeyRange>? Then HRegionInfo could implement KeyRange with
no wrappers.



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3949>

    check out ComparisonChain from guava. Something like:
    ComparisonChain.start()
      .compare(getStartKey(), r2.getStartKey())
      .compare(getEndKey(), r2.getEndKey())
      .result()



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3950>

    typo "is contains"



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3951>

    what's n?



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3952>

    remove empty javadoc



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3953>

    rename "obj" to "range" or something



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3954>

    maybe log a warning? or at least a debug.
    
    Should this be >= 0? I don't know if other stuff would fall apart if he had a degenerate/empty
region



src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3955>

    if I understand this correctly, it might be easier written as something like:
    
    for (byte[] coveredSplit : splits.subSet(r.getStartKey(), r.endKey()) {
      regions.put(coveredSplit, r);
    }
    
    



src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitCalculator.java
<https://reviews.apache.org/r/1703/#comment3956>

    I think it would be nice if you actually had this return sb.toString(), and then for each
of the cases, actually asserted equality against something you've hardcoded. eg:
    
    assertEquals(
      "A:t[A,B]\n" +
      "B:\t[B,C]\t[B,D]\n" +
      "D:\t\n" +
      "E:\t[E,F]\n",
      dump(foo));


- Todd


On 2011-09-02 15:28:35, jmhsieh wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1703/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-09-02 15:28:35)
bq.  
bq.  
bq.  Review request for hbase, Todd Lipcon and Michael Stack.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  This is the core region split calculator.  It provides a sorted set of region split points,
and a "coverage" multimap.  This is enough information to properly determine dupe start keys,
all the different kinds of overlap, as well as holes.
bq.  
bq.  
bq.  This addresses bug hbase-4321.
bq.      https://issues.apache.org/jira/browse/hbase-4321
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    src/main/java/org/apache/hadoop/hbase/util/RegionSplitCalculator.java PRE-CREATION

bq.    src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitCalculator.java PRE-CREATION

bq.  
bq.  Diff: https://reviews.apache.org/r/1703/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Unit tests just checks algorithm, no dependencies on HBase yet.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  jmhsieh
bq.  
bq.



> Add more comprehensive region split calculator
> ----------------------------------------------
>
>                 Key: HBASE-4321
>                 URL: https://issues.apache.org/jira/browse/HBASE-4321
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.90.4
>            Reporter: Jonathan Hsieh
>            Assignee: Jonathan Hsieh
>         Attachments: 0001-HBASE-4321-Add-more-comprehensive-region-split-calcu.patch
>
>
> Hbck currently scans through meta one entry at a time, only keeping a reference to the
previous meta entry.  This is insufficient for capturing all the possible problems in meta
and needs something more to properly identify holes, overlaps, duplicate start keys, and otherwise
invalid meta entries.
> Ideally, this calculator could also be used online interrogating an existing meta (HBASE-4058),
and also used to generate a completely new meta offline just from regioninfo and in hdfs (HBASE-3505).


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message