@Override public List<byte[]> rowKeys(String profile,String entity,List<Object> groups,long start,long end){
  List<byte[]> rowKeys=new ArrayList<>();
  end=Math.max(start,end);
  start=Math.min(start,end);
  ProfilePeriod period=new ProfilePeriod(start,periodDurationMillis,TimeUnit.MILLISECONDS);
  while (period.getStartTimeMillis() <= end) {
    byte[] k=rowKey(profile,entity,period,groups);
    rowKeys.add(k);
    period=period.next();
  }
  return rowKeys;
}

@ Override public List < byte [ ] > rowKeys ( String profile , String entity , List < Object > groups , long start , long end ) { List < byte [ ] > rowKeys = new ArrayList < > ( ) ; end = Math . max ( start , end ) ; start = Math . min ( start , end ) ; ProfilePeriod period = new ProfilePeriod ( start , periodDurationMillis , TimeUnit . MILLISECONDS ) ; while ( period . getStartTimeMillis ( ) <= end ) { byte [ ] k = rowKey ( profile , entity , period , groups ) ; rowKeys . add ( k ) ; period = period . next ( ) ; } return rowKeys ; }
builds a list of row keys necessary to retrieve profile measurements over a time horizon .
