docs: public void run() {
          // Reset the stats managed by the client.
          periodicStatsContext.fetchAndResetBaseline();
  
          // Run in a loop for config.duration seconds.
          final long benchmarkEndTime = app.startTS + (1000l * app.config.duration);
          while (benchmarkEndTime > System.currentTimeMillis()) {
  
              // GENERATE A RANDOM ROW
  
              // unique identifier and partition key
              String uuid = UUID.randomUUID().toString();
  
              // millisecond timestamp
              Date now = new Date();
  
              // for some odd reason, this will give LONG_MAX if the
              // computed value is > LONG_MAX.
              long val = (long) (rand.nextGaussian() * 1000.0);
  
              try {
                  basicInsert(uuid, val, now);
              }
              catch (IOException e) {
                  // Not being super picky about failure handling. If this
                  // fails, it will show up in the client-side statistics we
                  // print out in printReport().
              }
          }
  
          // When ready to end processing...
          try {
              // Block until all async calls have returned.
              client.drain();
              // Clean close of the client connection.
              client.close();
          }
          catch (IOException | InterruptedException e) {
              // Live dangerously and ignore this error that probably
              // won't happen at shutdown time.
          }
  
      }