-
Notifications
You must be signed in to change notification settings - Fork 589
HDDS-13922. Increase available space requirement during pipeline/container allocation #9362
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
Changes from 5 commits
d9c7f41
7ba1b2e
73843b4
3a816c7
6757c3a
744a85a
74db8cf
42adbc7
b808305
c3118ab
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -223,7 +223,7 @@ jobs: | |||||
| env: | ||||||
| DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} | ||||||
| - name: Summary of failures | ||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/unit/summary.txt | ||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/unit/summary.txt || true | ||||||
|
||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/unit/summary.txt || true | |
| run: hadoop-ozone/dev-support/checks/_summary.sh target/unit/summary.txt |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -150,7 +150,7 @@ jobs: | |||||
| KEEP_IMAGE: false | ||||||
| continue-on-error: true | ||||||
| - name: Summary of failures | ||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/${{ github.job }}/summary.txt | ||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/${{ github.job }}/summary.txt || true | ||||||
|
||||||
| run: hadoop-ozone/dev-support/checks/_summary.sh target/${{ github.job }}/summary.txt || true | |
| run: hadoop-ozone/dev-support/checks/_summary.sh target/${{ github.job }}/summary.txt |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -359,6 +359,10 @@ public final class ScmConfigKeys { | |
| "ozone.scm.container.size"; | ||
| public static final String OZONE_SCM_CONTAINER_SIZE_DEFAULT = "5GB"; | ||
|
|
||
| public static final String OZONE_SCM_CONTAINER_SPACE_REQUIREMENT_MULTIPLIER = | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I’m thinking this patch only needs to add a config to set the required data size (dataSizeRequired), which we can then read from ReplicationManagerUtil here: https://github.com/peterxcli/ozone/blob/7868a862ff616154e4bd9ab52dada929e15042ec/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManagerUtil.java#L93-L94.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @peterxcli ! I've tried to simplify the approach removed the new config entirely and directly use |
||
| "ozone.scm.container.space.requirement.multiplier"; | ||
| public static final double OZONE_SCM_CONTAINER_SPACE_REQUIREMENT_MULTIPLIER_DEFAULT = 2.0; | ||
|
|
||
| public static final String OZONE_SCM_CONTAINER_LOCK_STRIPE_SIZE = | ||
| "ozone.scm.container.lock.stripes"; | ||
| public static final int OZONE_SCM_CONTAINER_LOCK_STRIPE_SIZE_DEFAULT = 512; | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1035,6 +1035,22 @@ | |
| balances the amount of metadata. | ||
| </description> | ||
| </property> | ||
| <property> | ||
| <name>ozone.scm.container.space.requirement.multiplier</name> | ||
| <value>2.0</value> | ||
|
||
| <tag>OZONE, SCM, MANAGEMENT</tag> | ||
| <description> | ||
| Multiplier for container space requirement when checking if a datanode | ||
| has enough space for container allocation. The required space is calculated | ||
| as container size multiplied by this value. This prevents concurrent clients | ||
| from all passing the space check when there's only enough space for one | ||
| container. For example, with default container size of 5GB and multiplier | ||
| of 2.0, the system will require 10GB of available space before allocating | ||
| a new container. This ensures that if only 6GB is remaining, the check will | ||
| fail, preventing multiple clients from attempting to create containers | ||
| concurrently when there's only space for one. | ||
| </description> | ||
| </property> | ||
| <property> | ||
| <name>ozone.scm.container.lock.stripes</name> | ||
| <value>512</value> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.