[
https://issues.apache.org/jira/browse/HBASE-26996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17530955#comment-17530955
]
Bryan Beaudreault commented on HBASE-26996:
-------------------------------------------
An additional related bug here is if you have a table where the first region
end key is {{{}\x01{}}}, the split policy will try to split it on {{{}\x00{}}}.
A region with {{startKey=[]}} and {{endKey=\x00}} is basically empty so the
region never gets request/data. I'm guessing the split policy tries to split on
the midpoint between empty and {{{}\x01{}}}, which is not precisely {{\x00}}
but then it gets truncated due to how the RegionSplitRestrictions work.
> SteppingSplitPolicy and RegionSplitRestriction can result in illegal split
> noise
> --------------------------------------------------------------------------------
>
> Key: HBASE-26996
> URL: https://issues.apache.org/jira/browse/HBASE-26996
> Project: HBase
> Issue Type: Bug
> Reporter: Bryan Beaudreault
> Priority: Minor
>
> I set this to minor because I don't think it causes any real harm aside from
> log noise. But we should probably fix it up.
> Create a table with splits 0, 1, 2, 3, 4, 5. Then set
> {{hbase.regionserver.region.split_restriction.type}} to {{KeyPrefix}} and
> {{hbase.regionserver.region.split_restriction.prefix_length}} to 1.
> If you do enough writes to these regions, the SteppingSplitPolicy will try to
> split them. So it will try to split, for example, 1 in half. This is possible
> without KeyPrefix restriction, but with the restriction the split point will
> be truncated to value 1. The split will be submitted to the master with
> splitRow = 1 and that will fail because "Split row is equal to start key: 1"
> Setting up splits in this way, with the restriction, is useful for when
> you're adding a salt prefix to your rowkeys (i.e to better distribute
> timestamp rowkeys).
--
This message was sent by Atlassian Jira
(v8.20.7#820007)