[ 
https://issues.apache.org/jira/browse/HBASE-23620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang resolved HBASE-23620.
-------------------------------
    Resolution: Won't Fix

As discussed on the PR, the reason why we can not split a region with 
KeyPrefixRegionSplitPolicy is becase of an assumption in 
KeyPrefixRegionSplitPolicy. User should use other split policy if the 
assumption is not important but we can not remove the assumption from 
KeyPrefixRegionSplitPolicy.

> KeyPrefixRegionSplitPolicy may cause split to fail when specified prefix 
> length is short enough that resulting split point ends up with same value of 
> the parent start key.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-23620
>                 URL: https://issues.apache.org/jira/browse/HBASE-23620
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Major
>
> This was found by [~rmaruthiyodan] while analysing a problem reported by one 
> of our customers. In this specific case, customer application was defined a 
> prefix length of four, and row key value range was such that the four bytes 
> prefix was too short to fit in one single region, causing splits to fail. 
> Quoting [~rmaruthiyodan] findings:
> {noformat}
> 2019-12-18 00:25:38,469 INFO 
> [regionserver/regionserver1:17020-splits-1576627813051] 
> regionserver.HRegionServer: TRANSITION FAILED server {
> host_name: "regionserver1.customer.com"
> port: 17020
> start_code: 1576627748865
> }
> transition {
> transition_code: READY_TO_SPLIT
> region_info {
> region_id: 1560309299563
> table_name
> { namespace: "default" qualifier: "mycustomertable" }
> start_key: "abcd"
> end_key: "i"
> offline: false
> split: false
> replica_id: 0
> }
> region_info {
> region_id: 1576628738437
> table_name
> { namespace: "default" qualifier: "mycustomertable" }
> start_key: "abcd"
> end_key: "abcd"
> offline: false
> split: false
> replica_id: 0
> }
> region_info {
> region_id: 1576628738437
> table_name
> { namespace: "default" qualifier: "mycustomertable" }
> start_key: "abcd"
> end_key: "i"
> offline: false
> split: false
> replica_id: 0
> }
> }
> : Failed transition Split row is equal to startkey: abcd
> 2019-12-18 00:25:38,469 ERROR 
> [regionserver/regionserver1:17020-splits-1576627813051] 
> regionserver.SplitRequest: Unable to ask master to split 
> mycustomertable,abcd,1560309299563.ff6bd99e3a9a6927c6858e3c520b0367.
> {noformat}
> I'm proposing an initial PR that double checks if the resulting split point 
> sub array is same as the start key, then increment the length of the sub 
> array.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to