Skip to content

HDFS-17872. Propagate tolerancePercentage to DataNode in DiskBalancer…#8335

Open
deepujain wants to merge 1 commit intoapache:trunkfrom
deepujain:HDFS-17872-diskbalancer-plan-tolerance-percent
Open

HDFS-17872. Propagate tolerancePercentage to DataNode in DiskBalancer…#8335
deepujain wants to merge 1 commit intoapache:trunkfrom
deepujain:HDFS-17872-diskbalancer-plan-tolerance-percent

Conversation

@deepujain
Copy link
Contributor

Summary

dfs.disk.balancer.block.tolerance.percent is documented and used on the DataNode when executing a plan, but the plan command did not set tolerance percentage on plan steps. So the value sent to the DataNode was effectively the step default (0) unless the DataNode fell back to its own config. This change reads the config in the plan command and sets tolerancePercent on each step so the plan propagated to the DataNode uses the same value.

Change

  • PlanCommand.java: In setPlanParams(), read dfs.disk.balancer.block.tolerance.percent from configuration (default 10) and call step.setTolerancePercent(tolerancePercent) for each step in each plan. So generated plans include tolerance and the DataNode receives it (it already uses step.getTolerancePercent() when building work items).
  • TestNodePlan.java: Add testPlanStepTolerancePercentInJson(): build a NodePlan with a MoveStep that has setTolerancePercent(15), serialize to JSON, parse back, and assert the step’s getTolerancePercent() is 15 (HDFS-17872).

JIRA

Fixes HDFS-17872

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 20m 41s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+1 💚 mvninstall 49m 35s trunk passed
+1 💚 compile 1m 44s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 1m 44s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 1m 45s trunk passed
+1 💚 mvnsite 2m 0s trunk passed
+1 💚 javadoc 1m 49s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 2m 12s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 4m 55s trunk passed
+1 💚 shadedclient 38m 49s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 1m 25s the patch passed
+1 💚 compile 1m 15s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 1m 15s the patch passed
+1 💚 compile 1m 20s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 1m 20s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 1m 19s the patch passed
+1 💚 mvnsite 1m 32s the patch passed
+1 💚 javadoc 0m 59s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 1m 2s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 4m 9s the patch passed
+1 💚 shadedclient 38m 12s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 288m 0s /patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt hadoop-hdfs in the patch passed.
+1 💚 asflicense 1m 25s The patch does not generate ASF License warnings.
463m 27s
Reason Tests
Failed junit tests hadoop.hdfs.TestBlockRecoveryCauseStandbyNameNodeCrash
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8335/1/artifact/out/Dockerfile
GITHUB PR #8335
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets
uname Linux 121f09f0ea47 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / cfaf570
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8335/1/testReport/
Max. process+thread count 2495 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8335/1/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@deepujain
Copy link
Contributor Author

The unit -1 is in TestBlockRecoveryCauseStandbyNameNodeCrash, which is unrelated to this DiskBalancer change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants