byte[] nextRow() {
      if (nextRows.isEmpty()) {
        throw new IllegalStateException("NextRows should not be empty, "
          + "make sure to call nextRow() after updateTracker() return true");
      } else {
        return nextRows.peek().getFirst();
      }
    }
If we have multiple fuzzy keys, row tracker should improve overall performance. It calculates
all next rows (one per every fuzzy key) and put them (the fuzzy key is bundled) into a priority
queue so that the smallest row key always appears at queue head, which helps to decide the
"Next Cell Hint". As scanning going on, the number of candidate rows in the RowTracker will
remain the size of fuzzy keys until some of the fuzzy keys won't possibly have matches any
more.
hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java