Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

choose max drives per set to be '8' by default #18725

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

harshavardhana
Copy link
Member

Community Contribution License

All community contributions in this pull request are licensed to the project maintainers
under the terms of the Apache 2 license.
By creating this pull request I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 license.

Description

choose max drives per set to be '8' by default

Motivation and Context

with this, we also change the default parity for '8'
to be 'EC:3' instead of 'EC:4'.

How to test this PR?

This is a new change.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Optimization (provides speedup with no functional changes)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • Fixes a regression (If yes, please add commit-id or PR # here)
  • Unit tests added/updated
  • Internal documentation updated
  • Create a documentation update request here

with this we also change default parity for '8'
to be 'EC:3' instead of 'EC:4'.
@ravindk89
Copy link
Contributor

This is a big change @harshavardhana

So we still support erasure set sizes of 9-16, but we are defaulting to a max of 8 unless specified otherwise?

Plus Standard EC:3 with max set size instead of EC:4.

Can you walk us through the logic/goal state here and what we gain/lose in this setup? We'll have a lot of guidance to redo.

@harshavardhana
Copy link
Member Author

harshavardhana commented Jan 2, 2024

This is a big change @harshavardhana

So we still support erasure set sizes of 9-16, but we are defaulting to a max of 8 unless specified otherwise?

Plus Standard EC:3 with max set size instead of EC:4.

Can you walk us through the logic/goal state here and what we gain/lose in this setup? We'll have a lot of guidance to redo.

Implications are same as if you set manually storage class standard to EC:3, and use SET_DRIVE_COUNT environment to 8.

Nothing else changes other than this @ravindk89 - instead of manually doing it we are simply agreeing as per "design" that by default we will never do wider stripes.

With our experience over last few years we do not see the value in it anymore. Also reducing stripe quite simply increases IOPs by 2x.

Also increases efficiency of the scanner, everything is more spread out and still provides a good amount of safety net.

If you do not trust your hardware then you can simply set higher stripe count, with reduced performance.

@ravindk89
Copy link
Contributor

Gotcha. We'll have to prep a few things.

A few follow-ups:

Assuming we continue to follow pool expansion logic.

So if I have pool 1 with stripe size of 16 and EC:8, the new pool should also require at least EC:8 and therefore stripe 8, correct? Even with this setting that is.

@klauspost
Copy link
Contributor

@harshavardhana Will it prefer 5 over 10, 6 over 12, 7 over 14 - or will this just affect sizes divisible by 16?

@harshavardhana
Copy link
Member Author

@harshavardhana Will it prefer 5 over 10, 6 over 12, 7 over 14 - or will this just affect sizes divisible by 16?

yeah, well, it does right now. That's the question I have that needs clarification, but it is going to be a bit of a hoch-poch to digest after years of running things differently.

@klauspost
Copy link
Contributor

Yeah.. Like I get it for 16 -> 8 and 14 -> 7.... But 10 -> 5 and maybe 12 ->6 seems like a rather big drop...

@harshavardhana harshavardhana removed the next-release scheduled for upcoming release label Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants