[ 
https://issues.apache.org/jira/browse/HDDS-14048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sumit Agrawal updated HDDS-14048:
---------------------------------
    Fix Version/s: 2.2.0
       Resolution: Fixed
           Status: Resolved  (was: Patch Available)

> Optimise NodesOutOfSpace metric logic
> -------------------------------------
>
>                 Key: HDDS-14048
>                 URL: https://issues.apache.org/jira/browse/HDDS-14048
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Sarveksha Yeshavantha Raju
>            Assignee: Sarveksha Yeshavantha Raju
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.2.0
>
>
> Below code will be computation intensive, and metrics will be queried every 
> 30 sec.
> DN can have 100K of containers, including OPEN and CLOSED containers.We can 
> optimize as, # if node stats at volume level have committed space < block 
> size, no space (can have approx 15 loop for volumes at dn level)
>  # if have space, possibility of being distributed at every container can be 
> checked as below.
> Just thinking if we can avoid below check, just depending on committed space 
> for some approx info, as container close event will be triggered by DN for 
> 4.5G full case.
> So we need not loop like below.
> {code:java}
> private boolean hasContainerWithSpace(DatanodeInfo dnInfo, long blockSize, 
> long containerSize) {
>     try {
>       Set<ContainerID> containers = getContainers(dnInfo);
>       for (ContainerID containerID : containers) {
>         ContainerInfo containerInfo = 
> scmContext.getScm().getContainerManager().getContainer(containerID);
>         if (containerInfo.getState() == HddsProtos.LifeCycleState.OPEN &&
>             containerInfo.getUsedBytes() + blockSize <= containerSize) {
>           return true;
>         }
>       }
>     } catch (Exception e) {
>       LOG.debug("Error checking containers for datanode {}: {}", 
> dnInfo.getID(), e.getMessage());
>     }
>     return false;
>   } {code}



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