You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/03/20 10:55:15 UTC
svn commit: r756395 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/HStoreKey.java
src/java/org/apache/hadoop/hbase/master/HMaster.java
Author: stack
Date: Fri Mar 20 09:55:10 2009
New Revision: 756395
URL: http://svn.apache.org/viewvc?rev=756395&view=rev
Log:
HBASE-1277, HBASE-1275 HStoreKey: Wrong comparator logic & TestTable.testCreateTable broken
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HStoreKey.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/HMaster.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=756395&r1=756394&r2=756395&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Mar 20 09:55:10 2009
@@ -53,6 +53,8 @@
HBASE-1268 ZooKeeper config parsing can break HBase startup
(Nitay Joffe via Stack)
HBASE-1270 Fix TestInfoServers (Nitay Joffe via Stack)
+ HBASE-1277 HStoreKey: Wrong comparator logic (Evgeny Ryabitskiy)
+ HBASE-1275 TestTable.testCreateTable broken (Ryan Rawson via Stack)
IMPROVEMENTS
HBASE-1089 Add count of regions on filesystem to master UI; add percentage
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HStoreKey.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HStoreKey.java?rev=756395&r1=756394&r2=756395&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HStoreKey.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HStoreKey.java Fri Mar 20 09:55:10 2009
@@ -803,8 +803,7 @@
return result;
}
result = left.getColumn() == null && right.getColumn() == null? 0:
- left.getColumn() == null && right.getColumn() != null? -1:
- left.getColumn() != null && right.getColumn() == null? 1:
+ left.getColumn() == null ? -1:right.getColumn() == null? 1:
Bytes.compareTo(left.getColumn(), right.getColumn());
if (result != 0) {
return result;
@@ -818,7 +817,7 @@
} else if (left.getTimestamp() > right.getTimestamp()) {
result = -1;
}
- return 0; // are equal
+ return result; // are equal
}
protected int compareRows(final byte [] left, final int loffset,
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/HMaster.java?rev=756395&r1=756394&r2=756395&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/HMaster.java Fri Mar 20 09:55:10 2009
@@ -641,7 +641,7 @@
private synchronized void createTable(final HRegionInfo newRegion)
throws IOException {
- byte [] tableName = newRegion.getTableDesc().getName();
+ String tableName = newRegion.getTableDesc().getNameAsString();
// 1. Check to see if table already exists. Get meta region where
// table would sit should it exist. Open scanner on it. If a region
// for the table we want to create already exists, then table already
@@ -650,15 +650,16 @@
byte [] metaRegionName = m.getRegionName();
HRegionInterface srvr = connection.getHRegionConnection(m.getServer());
+ byte[] firstRowInTable = Bytes.toBytes(tableName + ",,");
long scannerid = srvr.openScanner(metaRegionName, COL_REGIONINFO_ARRAY,
- tableName, LATEST_TIMESTAMP, null);
+ firstRowInTable, LATEST_TIMESTAMP, null);
try {
RowResult data = srvr.next(scannerid);
if (data != null && data.size() > 0) {
HRegionInfo info = Writables.getHRegionInfo(data.get(COL_REGIONINFO));
- if (Bytes.equals(info.getTableDesc().getName(), tableName)) {
+ if (info.getTableDesc().getNameAsString().equals(tableName)) {
// A region for this table already exists. Ergo table exists.
- throw new TableExistsException(Bytes.toString(tableName));
+ throw new TableExistsException(tableName);
}
}
} finally {
@@ -710,13 +711,14 @@
List<Pair<HRegionInfo,HServerAddress>> result =
new ArrayList<Pair<HRegionInfo,HServerAddress>>();
Set<MetaRegion> regions = regionManager.getMetaRegionsForTable(tableName);
+ byte [] firstRowInTable = Bytes.toBytes(Bytes.toString(tableName) + ",,");
for (MetaRegion m: regions) {
byte [] metaRegionName = m.getRegionName();
HRegionInterface srvr = connection.getHRegionConnection(m.getServer());
long scannerid =
srvr.openScanner(metaRegionName,
new byte[][] {COL_REGIONINFO, COL_SERVER},
- tableName,
+ firstRowInTable,
LATEST_TIMESTAMP,
null);
try {
@@ -748,12 +750,13 @@
throws IOException {
Set<MetaRegion> regions = regionManager.getMetaRegionsForTable(tableName);
for (MetaRegion m: regions) {
+ byte [] firstRowInTable = Bytes.toBytes(Bytes.toString(tableName) + ",,");
byte [] metaRegionName = m.getRegionName();
HRegionInterface srvr = connection.getHRegionConnection(m.getServer());
long scannerid =
srvr.openScanner(metaRegionName,
new byte[][] {COL_REGIONINFO, COL_SERVER},
- tableName,
+ firstRowInTable,
LATEST_TIMESTAMP,
null);
try {