[ https://issues.apache.org/jira/browse/HBASE-26996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890240#comment-17890240 ]
Hernan Gelaf-Romer commented on HBASE-26996: -------------------------------------------- I think there's a scenario in which this bug is indeed harmful. When a region is flushed, we check to see whether the region split request can be created. If it can't, it will be compacted. In the case where the start key == new split point, we run into a situation where a region will never split, or compact its storefiles. This can result in HBase running into the blocking storefile limit due to the buildup of storefiles on a single region. > 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.10#820010)