code: public Map<G, Integer> getGroupSizes(Predicate<G> predicate) {
          Timer.Context ctx = getGroupSizesTimer.time();
          try {
              return this.taskQueue.getGroupSizes(predicate);
          } finally {
              ctx.stop();
          }
      }
docs: TODO: should we index this predicate somehow?
  
  @param predicate
  @return