If I understand this (big assumption :-), then this re-computes the hint from scratch at each row. Do you think it makes sense to try to keep more state in the filter about "where you are". You could have a counter for each key "part" and roll it over once the key of the data is greater than the current one. Kind of like a merge sort? Not a big deal with our current usage, but to replace batched gets, maybe we'd want to change.