-
-
Notifications
You must be signed in to change notification settings - Fork 727
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
Round-robin empty workers with queueing enabled #7222
Conversation
min_v: float | None = None | ||
for cws in dict.values(self.idle): | ||
# ^ micro-optimization: `SortedDict` inherits from plain `dict`; iterating | ||
# in non-sorted order is 10x faster and order doesn't matter here. |
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.
The 10x number comes from here #4925 (comment)
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.
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.
xref #7245
Unit Test ResultsSee test report for an extended history of previous test failures. This is useful for diagnosing flaky tests. 15 files ±0 15 suites ±0 6h 14m 14s ⏱️ - 14m 35s For more details on these failures, see this check. Results for commit c578cb2. ± Comparison against base commit 02b9430. ♻️ This comment has been updated with latest results. |
b000b16
to
c578cb2
Compare
Another possible approach: |
I'm leaning towards #7248. I think that's more sensible. This special case isn't very important, and we're going to remove the test for it anyway: #7221 (comment) |
With queuing enabled, when multiple workers have 0 tasks, rather than always picking the first of the empty workers each time, this implements round-robin logic. This ensures that when you're occasionally submitting a few tasks to an idle cluster, the same workers aren't used each time.
See #4637, #4638 for equivalent behavior with queuing disabled.
Requires #7221.
Closes #7197.
pre-commit run --all-files