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]