hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phabricator (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4627) Ability to specify a custom start/end to RegionSplitter
Date Wed, 02 Nov 2011 22:15:34 GMT

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

Phabricator commented on HBASE-4627:
------------------------------------

nspiegelberg has commented on the revision "[jira] [HBASE-4627] Ability to specify a custom
start/end to RegionSplitter".

INLINE COMMENTS
  src/main/java/org/apache/hadoop/hbase/util/Bytes.java:1417 this part was very tricky to
me as well.  the problem is that the region is exclusive [start,end) but the last row of the
table is prefix-exclusive [start,prefix(end)].  you can reason about this best with an 8-bit
HexStringSplit use case

      row = itoa(hash(row) % 256) + row
      table range = ["00", "FF"]

      row = "FFnic" <-- should be accepted
      row = "FGnic" <-- should FAIL

      memcmp("FF","FFnic") > 0
      memcmp("FF", "FFnic", sizeof("FF")) == 0

  In this case, you can split into 256 regions optimally.  So you should do:

      startBI = new BigInteger(0x00) ==0
      stopBI = new BigInteger(0xFF) == 255
      diffBI = 255.substract(0)
      if (inclusive) { diffBI = 255 + 1 }

REVISION DETAIL
  https://reviews.facebook.net/D39

COMMITS
  https://reviews.facebook.net/rHBASE1196256
  https://reviews.facebook.net/rHBASE1196772

                
> Ability to specify a custom start/end to RegionSplitter
> -------------------------------------------------------
>
>                 Key: HBASE-4627
>                 URL: https://issues.apache.org/jira/browse/HBASE-4627
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.94.0
>            Reporter: Nicolas Spiegelberg
>            Assignee: Nicolas Spiegelberg
>         Attachments: D39.1.patch, D39.1.patch
>
>
> HBASE-4489 changed the default endKey on HexStringSplit from 7FFF... to FFFF...  While
this is correct, existing users of 0.90 RegionSplitter have 7FFF as the end key in their schema
and the last region will not split properly under this new code.  We need to let the user
specify a custom start/end key range for when situations like this arise.  Optimally, we should
also write the start/end key in META so we could figure this out implicitly instead of requiring
the user to explicitly specify it.

--
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

        

Mime
View raw message