Repository navigation
HDDS-17723. Datanode pipeline limit must use per tier count instead of using total-cluster DN count. - #11963
Draft
devmadhuu wants to merge 1 commit into
Draft
HDDS-17723. Datanode pipeline limit must use per tier count instead of using total-cluster DN count.#11963devmadhuu wants to merge 1 commit into
devmadhuu wants to merge 1 commit into
Conversation
…f using total-cluster DN count.
Contributor
Author
|
@anuragp010 Kindly have a look. |
Contributor
Author
|
@ashishkumar50 Please check PR description on pipeline limit with storage tiers. It makes sense to have separate pipeline limit to be applied per tier because writes will happen on each tier separately based on type of tier data. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
SCM counts pipelines per storage tier but calculates the pipeline ceiling using all healthy datanodes, including those that do not support the requested tier. This can allow unnecessary creation attempts that later fail placement checks.
Calculate the ceiling using healthy, in-service datanodes supporting the requested tier. Preserve existing per-datanode limits, placement checks and configuration defaults.
Configuration
ozone.scm.datanode.pipeline.limit— default:2For a positive value:
participation on each datanode.
supported storage type on the datanode.
For example, with the default value of
2, a datanode supporting SSD andDISK can participate in up to 2 SSD pipelines and 2 DISK pipelines.
When this configuration is
0, SCM derives the datanode limit from:ozone.scm.pipeline.per.metadata.diskdefaults to2. These are Ratismetadata/log volumes, not SSD/DISK data-volume counts. This calculation is
unchanged by this PR.
Before storage policies — master
The following examples use positive values of
ozone.scm.datanode.pipeline.limit.Cluster pipeline ceiling:
After storage policies, including this PR
Per-type cluster pipeline ceiling:
All table values are cluster-wide ceilings for distinct RATIS/THREE pipelines.
Each pipeline requires three datanodes. Actual creation also depends on
per-datanode limits, capacity and placement checks.
Example: six mixed datanodes with the configuration set to 3
What this PR changes
Independent per-type datanode limits already exist in the storage-policy
feature branch. This PR corrects the cluster-wide ceiling calculation.
For example, consider 3 SSD-only datanodes and 3 DISK-only datanodes, with
ozone.scm.datanode.pipeline.limit = 2:6 × 2 ÷ 3 = 4.3 × 2 ÷ 3 = 2.Existing per-datanode checks already restrict actual pipeline creation.
This change makes the cluster-wide ceiling consistent with those checks.
It introduces no configuration changes.
What is the link to the Apache JIRA?
HDDS-17723
How was this patch tested?