-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Update default maxSegmentsInNodeLoadingQueue #11540
Update default maxSegmentsInNodeLoadingQueue #11540
Conversation
Update the default maxSegmentsInNodeLoadingQueue from 0 (unbounded) to 100. An unbounded maxSegmentsInNodeLoadingQueue can cause cluster instability. Since this is the default druid operators need to run into this instability and then look through the docs to see that the recommended value for a large cluster is 1000. This change makes it so the default will prevent clusters from falling over as they grow over time.
Added |
LGTM. |
@@ -134,7 +136,7 @@ public CoordinatorDynamicConfig( | |||
// Keeping the legacy 'killPendingSegmentsSkipList' property name for backward compatibility. When the project is | |||
// updated to Jackson 2.9 it could be changed, see https://github.com/apache/druid/issues/7152 | |||
@JsonProperty("killPendingSegmentsSkipList") Object dataSourcesToNotKillStalePendingSegmentsIn, | |||
@JsonProperty("maxSegmentsInNodeLoadingQueue") int maxSegmentsInNodeLoadingQueue, | |||
@JsonProperty(value = "maxSegmentsInNodeLoadingQueue") @Nullable Integer maxSegmentsInNodeLoadingQueue, |
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.
Nit: Is the value =
part required?
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.
oops will remove
server/src/test/java/org/apache/druid/server/http/CoordinatorDynamicConfigTest.java
Outdated
Show resolved
Hide resolved
@@ -732,7 +737,9 @@ public CoordinatorDynamicConfig build() | |||
: decommissioningMaxPercentOfMaxSegmentsToMove, | |||
pauseCoordination == null ? DEFAULT_PAUSE_COORDINATION : pauseCoordination, | |||
replicateAfterLoadTimeout == null ? DEFAULT_REPLICATE_AFTER_LOAD_TIMEOUT : replicateAfterLoadTimeout, | |||
maxNonPrimaryReplicantsToLoad == null ? DEFAULT_MAX_NON_PRIMARY_REPLICANTS_TO_LOAD : maxNonPrimaryReplicantsToLoad | |||
maxNonPrimaryReplicantsToLoad == null | |||
? DEFAULT_MAX_NON_PRIMARY_REPLICANTS_TO_LOAD |
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.
Indentation seems off.
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 thought so too, but I used intelliJ's auto-format and this is what it came up with 🤷
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.
:)
LGTM |
Description
Update the default maxSegmentsInNodeLoadingQueue from 0 (unbounded) to 100.
An unbounded maxSegmentsInNodeLoadingQueue can cause cluster instability.
Since this is the default druid operators need to run into this instability
and then look through the docs to see that the recommended value for a large
cluster is 1000. This change makes it so the default will prevent clusters
from falling over as they grow over time.
This PR has: