[
https://issues.apache.org/jira/browse/HADOOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HADOOP-1581:
--------------------------
Attachment: hadoop-1581.patch
Suggested fix for this issue.
HADOOP-1581 HBASE: Un-openable tablename bug
Change format of region names from TABLENAME_STARTROW_ENDROW-RANDOMID
to TABLENAME,STARTROW,ENDROW-RANDOMID. Makes it so lone table name will
sort before any region of said table.
M src/contrib/hbase/src/test/hbase-site.xml
(hbase.client.retries.number): Removed. Wasdefault value for this property.
(hbase.master.meta.thread.rescanfrequency,
hbase.server.thread.wakefrequency,
hbase.regionserver.handler.count): Add values that are less than
default so unit tests are even more responsive (and finished
quicker).
M src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestToString.java
Change test so it expects region info name that has ',' delimiters
rather than '_' delimiters.
* src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestTable.java
Rename testTable as testCreateTable.
(testTableNameClash): Test for this issue.
* src/contrib/hbase/src/java/org/apache/hadoop/hbase/HTableDescriptor.java
Comment on table name sorting.
* src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionInfo.java
Change format of region names so delimiter is ',' rather than '_'.
> HBASE: Un-openable tablename bug
> --------------------------------
>
> Key: HADOOP-1581
> URL: https://issues.apache.org/jira/browse/HADOOP-1581
> Project: Hadoop
> Issue Type: Bug
> Components: contrib/hbase
> Affects Versions: 0.14.0
> Reporter: James Kennedy
> Priority: Critical
> Attachments: hadoop-1581.patch
>
>
> If you create a table whose name is the beginning of an already existing
> table name, you will not be able to open the table.
> Try:
> 1) Create table TESTOne
> 2) Create table TEST
> 3) Open table TEST
> The reason is that the the META keys augment the table name with _[regionID].
> So when looking up table TEST, a scanner is opened on the HMemCache Meta
> region with a start key of "TEST". But the HMemcacheScanner backingMaps
> (TreeMaps) are keyed with the augmented table names where TESTOne_[regionid1]
> comes before TEST_[regionid2] because 'O' is lower than _ in the ASCII table.
> The backingMaps[i].tailMap(firstKey).keySet().iterator() line in HMemCache
> returns an iterator starting from TestOne_... and not Test_... like it
> should.
> The "if(!regionInfo.tableDesc.getName().equals(tableName)) {" line in
> HClient will cause the method to stop searching for more regions of that
> table and the number of found tables for tableName will be 0. Incidentally
> that IF statement will report "table found" even when that is not the case.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.