Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Later
-
1.0.0, 2.0.0
-
None
-
None
Description
Short.MAX_VALUE hasn't been a problem for a long time but one of our customers ran into an edgy case when the midKey used for the split point was very close to Short.MAX_VALUE. When the split is submitted, we attempt to create the new two daughter regions and we name those regions via HRegionInfo.createRegionName() in order to be added to META. Unfortunately, since HRegionInfo.createRegionName() uses midKey as the startKey Put will fail since the row key length will now fail checkRow and thus causing the split to fail.
I tried a couple of alternatives to address this problem, e.g. truncating the startKey. But the number of changes in the code doesn't justify for this edge condition. Since we already use Integer.MAX_VALUE - 1 for HConstants#MAXIMUM_VALUE_LENGTH it should be ok to use the same limit for the maximum row key.