@ Override public boolean saveDigestAndRenameCheckpointImage ( long txid , MD5Hash digest ) { try { LOG . info ( "Saving md5: " + digest + " for txid: " + txid ) ; QuorumCall < AsyncLogger , Void > q = loggers . saveDigestAndRenameCheckpointImage ( txid , digest ) ; loggers . waitForWriteQuorum ( q , writeTxnsTimeoutMs , "saveDigestAndRenameCheckpointImage(" + txid + ")" ) ; return true ; } catch ( IOException e ) { LOG . error ( "Exception when rolling the image:" , e ) ; return false ; } }
Roll image and save md5 digest to the underlying nodes . This is a quorum roll and we ensure that it can succeed only on the nodes that consumed entirely the uploaded image .