what about virtual nodes in 1.2? Do we insist that split may not span more than one contiguous token range?
That's kind of orthogonal to wrapping ranges per se – you'll still only have a single [virtual] node whose range wraps. So vnodes won't make that worse. Moreover, you're still going to need two scans at the disk level since a wrapping range won't be contiguous there. (Currently wrapping ranges are split by StorageProxy.getRestrictedRanges but this may change for
CASSANDRA-4858.) Doing an extra Thrift or CQL query is negligible overhead compared to the actual scan.
Finally, getRestrictedRanges will split it up into scan-per-vnode which I agree is something we should fix but I don't think this patch does it. As an optimization I don't think it's something we should block 1.2.0 for. Should we split this into a separate ticket?