org.apache.hadoop.hbase.util
Class RegionSplitCalculator<R extends KeyRange>
java.lang.Object
org.apache.hadoop.hbase.util.RegionSplitCalculator<R>
- Type Parameters:
R
-
public class RegionSplitCalculator<R extends KeyRange>
- extends Object
This is a generic region split calculator. It requires Ranges that provide
start, end, and a comparator. It works in two phases -- the first adds ranges
and rejects backwards ranges. Then one calls calcRegions to generate the
multimap that has a start split key as a key and possibly multiple Ranges as
members.
To traverse, one normally would get the split set, and iterate through the
calcRegions. Normal regions would have only one entry, holes would have zero,
and any overlaps would have multiple entries.
The interface is a bit cumbersome currently but is exposed this way so that
clients can choose how to iterate through the region splits.
Method Summary |
boolean |
add(R range)
Adds an edge to the split calculator |
com.google.common.collect.Multimap<byte[],R> |
calcCoverage()
Generates a coverage multimap from split key to Regions that start with the
split key. |
TreeSet<byte[]> |
getSplits()
|
com.google.common.collect.Multimap<byte[],R> |
getStarts()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BYTES_COMPARATOR
public static final Comparator<byte[]> BYTES_COMPARATOR
RegionSplitCalculator
public RegionSplitCalculator(Comparator<R> cmp)
add
public boolean add(R range)
- Adds an edge to the split calculator
- Returns:
- true if is included, false if backwards/invalid
calcCoverage
public com.google.common.collect.Multimap<byte[],R> calcCoverage()
- Generates a coverage multimap from split key to Regions that start with the
split key.
- Returns:
- coverage multimap
getSplits
public TreeSet<byte[]> getSplits()
getStarts
public com.google.common.collect.Multimap<byte[],R> getStarts()
Copyright © 2012 The Apache Software Foundation. All Rights Reserved.