I'm re-purposing this issue to add a heuristic as to when to SEEK and when to SKIP Cells. This has come up in various issues, and I think I have a way to finally fix this now.
HBASE-9778, HBASE-12311, and friends are related.
— Old description —
This is a continuation of
We've seen a scenario of a very slow scan over a region using a timerange that happens to fall after the ts of any Cell in the region.
Turns out we spend a lot of time seeking.
Tested with a 5 column table, and the scan is 5x faster when the timerange falls before all Cells' ts.
We can use the lookahead hint introduced in
HBASE-9778 to do opportunistic SKIPing before we actually seek.