docs: public synchronized QueryId createNextQueryId()
      {
          // only generate 100,000 ids per day
          if (counter > 99_999) {
              // wait for the second to rollover
              while (MILLISECONDS.toSeconds(nowInMillis()) == lastTimeInSeconds) {
                  Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
              }
              counter = 0;
          }
  
          // if it has been a second since the last id was generated, generate a new timestamp
          long now = nowInMillis();
          if (MILLISECONDS.toSeconds(now) != lastTimeInSeconds) {
              // generate new timestamp
              lastTimeInSeconds = MILLISECONDS.toSeconds(now);
              lastTimestamp = TIMESTAMP_FORMAT.print(now);
  
              // if the day has rolled over, restart the counter
              if (MILLISECONDS.toDays(now) != lastTimeInDays) {
                  lastTimeInDays = MILLISECONDS.toDays(now);
                  counter = 0;
              }
          }
  
          return new QueryId(String.format("%s_%05d_%s", lastTimestamp, counter++, coordinatorId));
      }