-
Notifications
You must be signed in to change notification settings - Fork 588
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 all 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 | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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 = | ||||||
| "ozone.scm.container.space.requirement.multiplier"; | ||||||
| public static final double OZONE_SCM_CONTAINER_SPACE_REQUIREMENT_MULTIPLIER_DEFAULT = 5.0; | ||||||
|
||||||
| public static final double OZONE_SCM_CONTAINER_SPACE_REQUIREMENT_MULTIPLIER_DEFAULT = 5.0; | |
| public static final double OZONE_SCM_CONTAINER_SPACE_REQUIREMENT_MULTIPLIER_DEFAULT = 2.0; |
| 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>5.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 5.0, the system will require 25GB 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> | ||
|
Comment on lines
+1042
to
+1052
|
||
| </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.
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.
@siddhantsangwan does this approach look correct?
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.
Thanks @peterxcli ! I've tried to simplify the approach removed the new config entirely and directly use
HddsServerUtil.requiredReplicationSpace()which already provides the 2x multiplier.