private boolean hasSomeDataInternal ( boolean image ) throws IOException { QuorumCall < AsyncLogger , Boolean > call = image ? loggers . isImageFormatted ( ) : loggers . isJournalFormatted ( ) ; try { call . waitFor ( loggers . size ( ) , 0 , 0 , hasDataTimeoutMs , "hasSomeData" ) ; } catch ( InterruptedException e ) { throw new IOException ( "Interrupted while determining if JNs have data" ) ; } catch ( TimeoutException e ) { throw new IOException ( "Timed out waiting for response from loggers" ) ; } if ( call . countExceptions ( ) > 0 ) { call . throwQuorumException ( "Unable to check if JNs are ready for formatting" ) ; } // If any of the loggers returned with a non-empty manifest, then // we should prompt for format. for ( Boolean hasData : call . getResults ( ) . values ( ) ) { if ( hasData ) { return true ; } } // Otherwise, none were formatted, we can safely format. return false ; }
Checks if any data is available in the underlying storage . Returns true if any of the nodes has some data .