Wellington Chevreuil created HBASE-23620:
--------------------------------------------

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


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