code: private void waitForNewTableMetadata() {
          TableMetadata metadata;
          int retries = 0;
          final int waitTime = 100;
          do {
              metadata = getSession()
                      .getCluster()
                      .getMetadata()
                      .getKeyspace(this.catalog)
                      .getTable(quote(this.table));
  
              if (metadata != null) {
                  continue;
              }
  
              LOG.warn(String.format("Metadata for new table %s.%s NOT FOUND, waiting %d millis", this.catalog,
                      this.table, waitTime));
              try {
                  Thread.sleep(waitTime);
              } catch (InterruptedException e) {
                  LOG.error("Sleep interrupted", e);
              }
  
              retries++;
  
              if (retries >= 10) {
                  throw new DeepIOException("Cannot retrieve metadata for the newly created CF ");
              }
          } while (metadata == null);
      }
docs: waits until table metadata is not null