The rowset tree only supports culling rowsets when there's both a PK upper bound and a PK lower bound. So, for example, on a tablet partitioned by arrival time, doing a query for all rows that arrived since yesterday involves creating iterators for every rowset, instead of only the rowsets that satisfy the primary key bound. Normally, this isn't such a big deal since the scan will immediately see from the key index that the rowset doesn't have any results, but in some cases (like if due to
KUDU-1400 there are a lot of small rowsets), the time spent opening extra rowsets can make the initial scan request take a long time.
It should be fairly straightforward to enhance the rowset tree to handle intervals open on either end.