public void scheduleBlockReport ( long delay ) { if ( delay > 0 ) { // send BR after random delay lastBlockReport = System . currentTimeMillis ( ) - ( anode . blockReportInterval - R . nextInt ( ( int ) ( delay ) ) ) ; } else { // send at next heartbeat lastBlockReport = lastHeartbeat - anode . blockReportInterval ; } resetBlockReportTime = true ; // reset future BRs for randomness }
This methods arranges for the data node to send the block report at the next heartbeat .