private boolean tryToComputeNext() {
    next = computeNext();
    if (state != State.DONE) {
      state = State.READY;
      return true;
    }
    return false;
  }
adapted from guava's {@code com.google.common.collect.AbstractIterator}.
zipkin-storage/mysql-v1/src/main/java/zipkin2/storage/mysql/v1/PeekingIterator.java