[
https://issues.apache.org/jira/browse/HBASE-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13188140#comment-13188140
]
stack commented on HBASE-2600:
------------------------------
I like what Ted says above about need to deprecate a call to remove.
Here's some feedback. I'm half-way done. Patch is shaping up nicely.
What is the change in TestHRegionInfo? You change a startkey to an endkey?
I'm not sure I follow why this is done.
I like the removal of the testGetClosestBefore from TestMinVersions.java
and of TestGetClosestAtOrBefore.java (hurray!)
I love all the removed code.
So in HConstants, ZEROS is deprecated but NINES is not? How is NINES used
still (later I see it used but I'm not sure what its doing?)
I like removal of META_ROW_DELIMITER
Spacing is wacky here:
- this.startKey, this.id,
- !HTableDescriptor.isMetaTable(tableNameAsBytes));
- return Bytes.toString(nameAsBytes);
+ this.endKey,
+
Long.toString(this.id).getBytes(),
+
!HTableDescriptor.isMetaTable(tableNameAsBytes));
+ return Bytes.toStringBinary(nameAsBytes);
What happens if the last region in a table is missing for whatever reason?
Is the javadoc on getStartRow in HTableDescriptor right? Its says its
returning first
possible region that could match a tablename + searchrow? Is it first possible
row
in meta?
> 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: Bug
> Reporter: stack
> Assignee: Alex Newman
> Attachments:
> 0001-Changed-regioninfo-format-to-use-endKey-instead-of-s.patch,
> 0001-HBASE-2600.-Change-how-we-do-meta-tables-from-tablen-v2.patch,
> 0001-HBASE-2600.-Change-how-we-do-meta-tables-from-tablen-v4.patch,
> 0001-HBASE-2600.-Change-how-we-do-meta-tables-from-tablen-v6.patch,
> 0001-HBASE-2600.-Change-how-we-do-meta-tables-from-tablen.patch,
> 2600-trunk-01-17.txt, jenkins.pdf
>
>
> 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