public boolean ensureSchemaAgreement(){
  long start=System.currentTimeMillis();
  Map<String,List<String>> schemas=null;
  while (System.currentTimeMillis() - start < DbClientContext.MAX_SCHEMA_WAIT_MS) {
    try {
      log.info("sleep for {} seconds before checking schema versions.",DbClientContext.SCHEMA_RETRY_SLEEP_MILLIS / 1000);
      Thread.sleep(DbClientContext.SCHEMA_RETRY_SLEEP_MILLIS);
    }
 catch (    InterruptedException ex) {
      log.warn("Interrupted during sleep");
    }
    schemas=getSchemaVersions();
    if (schemas.size() > 2) {
      continue;
    }
    if (schemas.size() == 1) {
      if (!schemas.containsKey(StorageProxy.UNREACHABLE)) {
        return false;
      }
 else {
        continue;
      }
    }
    if (schemas.containsKey(StorageProxy.UNREACHABLE)) {
      return true;
    }
  }
  log.error("Unable to converge schema versions {}",schemas);
  throw new IllegalStateException("Unable to converge schema versions");
}

public boolean ensureSchemaAgreement ( ) { long start = System . currentTimeMillis ( ) ; Map < String , List < String > > schemas = null ; while ( System . currentTimeMillis ( ) - start < DbClientContext . MAX_SCHEMA_WAIT_MS ) { try { log . info ( "sleep for {} seconds before checking schema versions." , DbClientContext . SCHEMA_RETRY_SLEEP_MILLIS / 1000 ) ; Thread . sleep ( DbClientContext . SCHEMA_RETRY_SLEEP_MILLIS ) ; } catch ( InterruptedException ex ) { log . warn ( "Interrupted during sleep" ) ; } schemas = getSchemaVersions ( ) ; if ( schemas . size ( ) > 2 ) { continue ; } if ( schemas . size ( ) == 1 ) { if ( ! schemas . containsKey ( StorageProxy . UNREACHABLE ) ) { return false ; } else { continue ; } } if ( schemas . containsKey ( StorageProxy . UNREACHABLE ) ) { return true ; } } log . error ( "Unable to converge schema versions {}" , schemas ) ; throw new IllegalStateException ( "Unable to converge schema versions" ) ; }
try to reach a schema agreement among all the reachable nodes
