Sreeja created HDDS-16173:
-----------------------------

             Summary: Add cluster utilization analysis for container balancer 
CLI commands
                 Key: HDDS-16173
                 URL: https://issues.apache.org/jira/browse/HDDS-16173
             Project: Apache Ozone
          Issue Type: Sub-task
            Reporter: Sreeja
            Assignee: Sravani Revuri


We are adding three new CLI commands — assessment, dry-run, and recommend — 
that all need the same cluster view before any balancing runs. Those commands 
run 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 what the running balancer uses in 
ContainerBalancerTask.initializeIteration(), so CLI output and actual balancer 
behavior 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.



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