I've added a comment. Essentially, the way we translate datarequests into filters means that we could get more KeyValues returned than where actually requested. So, in order to make sure that we are returning the correct number of versions, we need to do some (hbase)client side filtering of the results. Let me know if you think I should clarify this more in the code.