[
https://issues.apache.org/jira/browse/HDDS-9889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrei Mikhalev updated HDDS-9889:
----------------------------------
Description:
Dynamical adaptation (introduced in HDDS-5526) for
{{datanodes.involved.max.percentage.per.iteration}} in container balancer
doesn't work well in some cases.
Sometimes the number of *under-utilized* nodes may not be sufficient to satisfy
the limit about the max percent of datanodes participating in the balance
iteration ({{{}datanodes.involved.max.percentage.per.iteration{}}}).
Thus, collections of source and target datanodes are reset and balancing is
skipped.
The issue it can be easily detected when cluster has few nodes (< 10), for
example 4 or 5.
+Solution:+
Two flags are introduced in
{{{}hdds.scm.container.balancer.ContainerBalancerConfiguration{}}}:
* {{adapt.balance.when.close.to.limit}}
* {{adapt.balance.when.each.the.limit}}
By default they have value {{true}} as it was for their local variables before
in
{{hdds.scm.container.balancer.ContainerBalancerTask#doIteration}}
So, you can disable dynamic adaptation for container balancing by settung that
flags to {{false}}
was:
Dynamical adaptation (introduced in HDDS-5526) for
{{datanodes.involved.max.percentage.per.iteration}} in container balancer
doesn't work well in some cases.
Sometimes the number of *under-utilized* nodes may not be sufficient to satisfy
the limit about the max percent of datanodes participating in the balance
iteration ({{{}datanodes.involved.max.percentage.per.iteration{}}}).
Thus, collections of source and target datanodes are reset and balancing is
skipped.
The issue it can be easily detected when cluster has few nodes (< 10), for
example 4 or 5.
> Configure adaptation for datanode limits in ContainerBalancer
> -------------------------------------------------------------
>
> Key: HDDS-9889
> URL: https://issues.apache.org/jira/browse/HDDS-9889
> Project: Apache Ozone
> Issue Type: Improvement
> Components: Balancer, SCM
> Affects Versions: 1.4.0
> Environment: {*}OS{*}: Ubuntu 22.04.3 LTS, {*}Arch{*}: 64-bit,
> {*}Processor{*}: Intel Core i7-9750H CPU 2.6GHz x 12
> Reporter: Andrei Mikhalev
> Priority: Major
> Labels: pull-request-available
>
> Dynamical adaptation (introduced in HDDS-5526) for
> {{datanodes.involved.max.percentage.per.iteration}} in container balancer
> doesn't work well in some cases.
> Sometimes the number of *under-utilized* nodes may not be sufficient to
> satisfy the limit about the max percent of datanodes participating in the
> balance iteration ({{{}datanodes.involved.max.percentage.per.iteration{}}}).
> Thus, collections of source and target datanodes are reset and balancing is
> skipped.
> The issue it can be easily detected when cluster has few nodes (< 10), for
> example 4 or 5.
>
> +Solution:+
> Two flags are introduced in
> {{{}hdds.scm.container.balancer.ContainerBalancerConfiguration{}}}:
> * {{adapt.balance.when.close.to.limit}}
> * {{adapt.balance.when.each.the.limit}}
> By default they have value {{true}} as it was for their local variables
> before in
> {{hdds.scm.container.balancer.ContainerBalancerTask#doIteration}}
> So, you can disable dynamic adaptation for container balancing by settung
> that flags to {{false}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]