Shilun Fan created HDDS-15280:
---------------------------------

             Summary: Fix EC pipeline factor calculation
                 Key: HDDS-15280
                 URL: https://issues.apache.org/jira/browse/HDDS-15280
             Project: Apache Ozone
          Issue Type: Bug
          Components: ECOfflineRecovery
            Reporter: Shilun Fan
            Assignee: Shilun Fan


WritableECContainerProvider uses ozone.scm.ec.pipeline.per.volume.factor to 
calculate the maximum number of EC pipelines based on the total number of 
healthy volumes.

Currently, the calculation casts the factor to int before multiplying it by the 
volume count:

  (int) factor * volumes / repConfig.getRequiredNodes()

This causes fractional values to be truncated before the calculation. For 
example, when the factor is configured as 0.5, it becomes 0, so the 
volume-based pipeline count is calculated as 0 regardless of the number of 
healthy volumes.

As a result, fractional values for ozone.scm.ec.pipeline.per.volume.factor do 
not work as intended, and the provider may fall back to the minimum pipeline 
count instead of honoring the configured factor.

The calculation should apply the factor before casting the final result to int:

  (int) (factor * volumes / repConfig.getRequiredNodes())



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