The logic maybe similar, but unfortunate the start-key and stop-key are from different sources. In DefaultSplitter, it's from the statsManager, and in here, it's from the ranges from SkipScanFilter. If we want to refactor them, we need to do some extra marshaling on the DefaultSplitter side.

Also, on the DefaultSplitter size, we tag the key range using the region id, and at the end we flatten it out. I think those logic is unnecessary for the SkipRangeSplitter and I simplify those out of this method. (Interestingly, I don't see much value added by using the MultiMap on the DefaultSplitter, I have been wondering why we need that.)

I think we can make a meta-method for them, but it can be done is a separate code cleanup.