[ 
https://issues.apache.org/jira/browse/HDFS-17872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18064165#comment-18064165
 ] 

ASF GitHub Bot commented on HDFS-17872:
---------------------------------------

deepujain opened a new pull request, #8335:
URL: https://github.com/apache/hadoop/pull/8335

   ### 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
   




> DiskBalancer: Plan command support with tolerancePercentage.
> ------------------------------------------------------------
>
>                 Key: HDFS-17872
>                 URL: https://issues.apache.org/jira/browse/HDFS-17872
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: fuchaohong
>            Priority: Major
>
> dfs.disk.balancer.block.tolerance.percent
> {code:java}
> The tolerance percent specifies when we have reached a good enough value for 
> any copy step. For example, if you specify 10% then getting close to 10% of 
> the target value is good enough.{code}
> Currently, only *{{maxDiskErrors}}* and *{{bandwidth}}* are passed in the 
> plan, and it is expected that *{{tolerancePercentage}}* can also be 
> propagated to the DataNode.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to