tasanuma commented on a change in pull request #3887:
URL: https://github.com/apache/hadoop/pull/3887#discussion_r786361910



##########
File path: 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
##########
@@ -1304,12 +1305,18 @@ long scheduleBlockReport(long delay, boolean 
isRegistration) {
      * Numerical overflow is possible here.
      */
     void scheduleNextBlockReport() {
+      scheduleNextBlockReport(false);
+    }
+
+    void scheduleNextBlockReport(boolean forceFullBr) {
       // If we have sent the first set of block reports, then wait a random
       // time before we start the periodic block reports.
       if (resetBlockReportTime) {
         nextBlockReportTime.getAndSet(monotonicNow() +
             ThreadLocalRandom.current().nextInt((int) 
(blockReportIntervalMs)));
         resetBlockReportTime = false;
+      } else if (forceFullBr) {
+        nextBlockReportTime.getAndSet(monotonicNow() + blockReportIntervalMs);

Review comment:
       @liubingxing @tomscut 
   Thanks for the discussion. IMHO, I prefer to use a random time to keep the 
randomness.
   I think HDFS-15167 causes this problem. Before HDFS-15167, 
`resetBlockReportTime` is true when triggering full block report by force, and 
it used a random time.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to