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