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]