I have a long row with a bunch of columns that I'm scanning with setAllowPartialResults(true). In the response I'm getting the first partial ScanResponse being around 2MB with multiple cells while all of the consequent ones being 1 cell per ScanResponse. After digging more, I found that each of those single cell ScanResponse partials are preceded by a heartbeat (zero cells). This results in two requests per cell to a regionserver.
I've attached code to reproduce it on hbase version 2.1.0 (it works as expected on 2.0.0 and 2.0.1).
I'm fairly certain it's a serverside issue as gohbase client is having the same issue. I have not tried to reproduce this with multi-row scan.