HBASE-5563 Add comparison of regionId to HRegionInfo#compareTo (chunhui and jmhsieh)
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1301779 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1d24d71821
commit
f34edd6378
|
@ -791,6 +791,15 @@ implements WritableComparable<HRegionInfo> {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// regionId is usually milli timestamp -- this defines older stamps
|
||||
// to be "smaller" than newer stamps in sort order.
|
||||
if (this.regionId > o.regionId) {
|
||||
return 1;
|
||||
} else if (this.regionId < o.regionId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (this.offLine == o.offLine)
|
||||
return 0;
|
||||
if (this.offLine == true) return -1;
|
||||
|
|
|
@ -2780,8 +2780,10 @@ public class AssignmentManager extends ZooKeeperListener {
|
|||
*/
|
||||
public List<HRegionInfo> getRegionsOfTable(byte[] tableName) {
|
||||
List<HRegionInfo> tableRegions = new ArrayList<HRegionInfo>();
|
||||
// boundary needs to have table's name but regionID 0 so that it is sorted
|
||||
// before all table's regions.
|
||||
HRegionInfo boundary =
|
||||
new HRegionInfo(tableName, null, null);
|
||||
new HRegionInfo(tableName, null, null, false, 0L);
|
||||
synchronized (this.regions) {
|
||||
for (HRegionInfo regionInfo: this.regions.tailMap(boundary).keySet()) {
|
||||
if(Bytes.equals(regionInfo.getTableName(), tableName)) {
|
||||
|
|
|
@ -130,6 +130,18 @@ public class TestHRegionInfo {
|
|||
assertTrue(HRegionInfo.FIRST_META_REGIONINFO.isMetaTable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testComparator() {
|
||||
byte[] tablename = Bytes.toBytes("comparatorTablename");
|
||||
byte[] empty = new byte[0];
|
||||
HRegionInfo older = new HRegionInfo(tablename, empty, empty, false, 0L);
|
||||
HRegionInfo newer = new HRegionInfo(tablename, empty, empty, false, 1L);
|
||||
assertTrue(older.compareTo(newer) < 0);
|
||||
assertTrue(newer.compareTo(older) > 0);
|
||||
assertTrue(older.compareTo(older) == 0);
|
||||
assertTrue(newer.compareTo(newer) == 0);
|
||||
}
|
||||
|
||||
@org.junit.Rule
|
||||
public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
|
||||
new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();
|
||||
|
|
Loading…
Reference in New Issue