[
https://issues.apache.org/jira/browse/HBASE-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12874122#action_12874122
]
Kannan Muthukkaruppan commented on HBASE-2531:
----------------------------------------------
Todd/Stack: ROOT and the *first* META region are handled in a special
hard-coded way in code. See HRegionInfo::ROOT_REGIONINFO and
HRegion::FIRST_META_REGIONINFO.
For example, their region id is hardcoded to 0 & 1 (and they do not use
timestamps).
-ROOT-,,0
.META.,,1
Their Jenkins hash encoded names: 70236052 & 1028785192 respectively do not
collide either. Not changing this simplifies handling upgrade from an older
version of HBase.
This should not be an issue for splits of META. If META splits, *it should* use
the new format region names (with timestamps for the region id portion) and md5
hash for encoded names.
> 32-bit encoding of regionnames waaaaaaayyyyy too susceptible to hash clashes
> ----------------------------------------------------------------------------
>
> Key: HBASE-2531
> URL: https://issues.apache.org/jira/browse/HBASE-2531
> Project: HBase
> Issue Type: Bug
> Reporter: stack
> Assignee: Kannan Muthukkaruppan
> Priority: Blocker
> Fix For: 0.21.0
>
> Attachments: HBASE-2531_v2.patch
>
>
> Kannan tripped over two regionnames that hashed the same:
> Here is code demo'ing that his two names hash the same:
> {code}
> package org;
> import org.apache.hadoop.hbase.util.Bytes;
> import org.apache.hadoop.hbase.util.JenkinsHash;
> public class Testing {
> public static void main(final String [] args) {
>
> System.out.println(encodeRegionName(Bytes.toBytes("test1,6838000000,1273541236167")));
>
> System.out.println(encodeRegionName(Bytes.toBytes("test1,0520100000,1273541610201")));
> }
> /**
> * @param regionName
> * @return the encodedName
> */
> public static int encodeRegionName(final byte [] regionName) {
> return Math.abs(JenkinsHash.getInstance().hash(regionName,
> regionName.length, 0));
> }
> }
> {code}
> Need new encoding mechanism. Will need to migrate old regions to new schema.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.