sravani-revuri opened a new pull request, #11037:
URL: https://github.com/apache/ozone/pull/11037
## What changes were proposed in this pull request?
We are adding three new CLI commands — assessment, dry-run, and recommend —
that all need the same cluster view. These commands run at client-side and
fetch datanode usage info via the existing getDatanodeUsageInfo RPC.
This Jira builds the shared foundation that is a common module that takes
datanode usage protos,
Responsibilities:
Apply include/exclude filters on the proto list
Compute cluster average utilization
Compute upper/lower utilization limits from cluster average and threshold
Compute each eligible node’s utilization (utilization = (capacity -
remaining) / capacity) and classify each as source, target, or balanced by
comparing with the upper/lower limits.
Accumulate source/target counts and
totalOverUtilizedBytes/totalUnderUtilizedBytes
Compute MaxUtilization, MinUtilization
Compute cluster imbalance and bytes to move
Build and return ContainerBalancerClusterSnapshot
The logic should match the way the running balancer uses in
ContainerBalancerTask.initializeIteration(), so CLI output and actual balancer
behaviour stay consistent.
Analyzer should return an object(ContainerBalancerClusterSnapshot)
containing totalEligibleDatanodes count, clusterAvgUtilization,
clusterCapacityBytes, MaxUtilization, MinUtilization, upperLimit, lowerLimit,
sourceCount, targetCount, totalOverUtilizedBytes, totalUnderUtilizedBytes,
bytesToMove, Imbalance (drift), top 5 sourceNodes hostnames, bottom 5
targetNodes hostnames.
We should also test this analysis.
## What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-16173
## How was this patch tested?
Written Unit Tests.
--
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]