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

[email protected] commented on HBASE-2600:
------------------------------------------------------



bq.  On 2011-12-13 22:35:41, Michael Stack wrote:
bq.  > I thought the change would be bigger than this.  Does it work?

Mostly, we still need the migration to work and a small change around the 
questions still in the jira. Also it is dependent on the two other reviews I 
filed.


bq.  On 2011-12-13 22:35:41, Michael Stack wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/HRegionInfo.java, line 142
bq.  > <https://reviews.apache.org/r/3186/diff/2/?file=64438#file64438line142>
bq.  >
bq.  >     Should this be 'starts with'?  Are 0x01 and 0x02 good characters to 
have here?   They are unprintable.  Would it be better to have printables?  
More friendly to, you know, those humans that have to look at this stuff.

It should say, the tablename encoded in the region ends with 0x01, but the last 
region ends with 0x02. I am down with changing it to anything, it's super easy 
now that we uuid the tablename.


- Alex


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


On 2011-12-13 21:12:33, Alex Newman wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/3186/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-12-13 21:12:33)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  PART 1 of hbase-4616
bq.  
bq.  This is an idea that Ryan and I have been kicking around on and off for a 
while now.
bq.  
bq.  If regionnames were made of tablename+endrow instead of 
tablename+startrow, then in the metatables, doing a search for the region that 
contains the wanted row, we'd just have to open a scanner using passed row and 
the first row found by the scan would be that of the region we need (If 
offlined parent, we'd have to scan to the next row).
bq.  
bq.  If we redid the meta tables in this format, we'd be using an access that 
is natural to hbase, a scan as opposed to the perverse, expensive 
getClosestRowBefore we currently have that has to walk backward in meta finding 
a containing region.
bq.  
bq.  This issue is about changing the way we name regions.
bq.  
bq.  If we were using scans, prewarming client cache would be near costless (as 
opposed to what we'll currently have to do which is first a getClosestRowBefore 
and then a scan from the closestrowbefore forward).
bq.  
bq.  Converting to the new method, we'd have to run a migration on startup 
changing the content in meta.
bq.  
bq.  Up to this, the randomid component of a region name has been the timestamp 
of region creation. HBASE-2531 "32-bit encoding of regionnames waaaaaaayyyyy 
too susceptible to hash clashes" proposes changing the randomid so that it 
contains actual name of the directory in the filesystem that hosts the region. 
If we had this in place, I think it would help with the migration to this new 
way of doing the meta because as is, the region name in fs is a hash of 
regionname... changing the format of the regionname would mean we generate a 
different hash... so we'd need hbase-2531 to be in place before we could do 
this change.
bq.  
bq.  
bq.  This addresses bug HBASE-2600.
bq.      https://issues.apache.org/jira/browse/HBASE-2600
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    src/main/java/org/apache/hadoop/hbase/HConstants.java 1cf58a9 
bq.    src/main/java/org/apache/hadoop/hbase/HRegionInfo.java 74cb821 
bq.    src/main/java/org/apache/hadoop/hbase/KeyValue.java be7e2d8 
bq.    src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java e5e60a8 
bq.    src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 6bff130 
bq.    src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java 
6f19d21 
bq.    src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java 4135e55 
bq.    src/main/java/org/apache/hadoop/hbase/client/MetaSearchRow.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java bf85bc1 
bq.    src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java 
67e7a04 
bq.    src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java 6fca020 
bq.    src/test/java/org/apache/hadoop/hbase/TestKeyValue.java dc4ee8d 
bq.    src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 95712dd 
bq.    
src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java
 5f97167 
bq.    src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java 
6e1211b 
bq.    src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStore.java 
a092cf0 
bq.    
src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
 1997abd 
bq.    
src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java 
b6f0ab5 
bq.  
bq.  Diff: https://reviews.apache.org/r/3186/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Alex
bq.  
bq.


                
> Change how we do meta tables; from tablename+STARTROW+randomid to instead, 
> tablename+ENDROW+randomid
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-2600
>                 URL: https://issues.apache.org/jira/browse/HBASE-2600
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: stack
>            Assignee: Alex Newman
>         Attachments: 
> 0001-Changed-regioninfo-format-to-use-endKey-instead-of-s.patch
>
>
> This is an idea that Ryan and I have been kicking around on and off for a 
> while now.
> If regionnames were made of tablename+endrow instead of tablename+startrow, 
> then in the metatables, doing a search for the region that contains the 
> wanted row, we'd just have to open a scanner using passed row and the first 
> row found by the scan would be that of the region we need (If offlined 
> parent, we'd have to scan to the next row).
> If we redid the meta tables in this format, we'd be using an access that is 
> natural to hbase, a scan as opposed to the perverse, expensive 
> getClosestRowBefore we currently have that has to walk backward in meta 
> finding a containing region.
> This issue is about changing the way we name regions.
> If we were using scans, prewarming client cache would be near costless (as 
> opposed to what we'll currently have to do which is first a 
> getClosestRowBefore and then a scan from the closestrowbefore forward).
> Converting to the new method, we'd have to run a migration on startup 
> changing the content in meta.
> Up to this, the randomid component of a region name has been the timestamp of 
> region creation.   HBASE-2531 "32-bit encoding of regionnames waaaaaaayyyyy 
> too susceptible to hash clashes" proposes changing the randomid so that it 
> contains actual name of the directory in the filesystem that hosts the 
> region.  If we had this in place, I think it would help with the migration to 
> this new way of doing the meta because as is, the region name in fs is a hash 
> of regionname... changing the format of the regionname would mean we generate 
> a different hash... so we'd need hbase-2531 to be in place before we could do 
> this change.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to