Skip to content

Refactor resource restriction handling in WorkerState#6672

Merged
crusaderky merged 11 commits intodask:mainfrom
hendrikmakait:resources-in-worker-state
Jul 6, 2022
Merged

Refactor resource restriction handling in WorkerState#6672
crusaderky merged 11 commits intodask:mainfrom
hendrikmakait:resources-in-worker-state

Conversation

@hendrikmakait
Copy link
Copy Markdown
Member

@hendrikmakait hendrikmakait commented Jul 5, 2022

  • Moves total_resources into WorkerState.
  • Encapsulated resource handling functionality into dedicated methods.
  • Purposefully does NOT add checks to WorkerState.validate_state as these would currently fail. This will be done in a follow-up PR.

Sets foundation for and therefore blocks fixes for #6663.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jul 5, 2022

Unit Test Results

See test report for an extended history of previous test failures. This is useful for diagnosing flaky tests.

       15 files  ±0         15 suites  ±0   6h 30m 22s ⏱️ - 2m 1s
  2 918 tests +1    2 834 ✔️ +  4    80 💤 +1  4  - 1 
21 605 runs  +6  20 667 ✔️ +12  934 💤 +1  4  - 4 

For more details on these failures, see this check.

Results for commit b1f2557. ± Comparison against base commit 1a28011.

♻️ This comment has been updated with latest results.

@hendrikmakait hendrikmakait force-pushed the resources-in-worker-state branch from 90b7823 to 01d1dc8 Compare July 5, 2022 13:08
@hendrikmakait hendrikmakait changed the title Move total_resources to WorkerState Refactor resource handling into WorkerState Jul 5, 2022
@hendrikmakait hendrikmakait requested a review from crusaderky July 5, 2022 14:58
@hendrikmakait hendrikmakait marked this pull request as ready for review July 5, 2022 14:58
@hendrikmakait hendrikmakait changed the title Refactor resource handling into WorkerState Refactor resource restriction handling in WorkerState Jul 5, 2022
@hendrikmakait
Copy link
Copy Markdown
Member Author

CI failures are known flakes #6549, #6653 and general signal test issues.

else:
self.available_resources[r] = quantity
self.total_resources[r] = quantity

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many problems with the code of Worker.set_resources. It would deserve a much more thorough overhaul.
For the purpose of this PR, I'd rather revert this and just tamper with the state directly from Worker.set_resources.

Copy link
Copy Markdown
Member Author

@hendrikmakait hendrikmakait Jul 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One issue I see with this is that this method would be quite useful for tests that are currently setting attributes directly which results in a technically invalid worker state (https://github.com/dask/distributed/blob/main/distributed/utils_test.py#L2452). Given that you have already set up a ticket for the more thorough overhaul (#6677), I'd prefer leaving this as is, in particular since a follow-up PR will add more validations of worker state that check for consistency between total_resources, available_resources and any currently acquired resources.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it would need to be a SetResourcesEvent anyway. I'd rather not have a throwaway refactoring.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, updated ws_with_running_task as well.

Co-authored-by: crusaderky <crusaderky@gmail.com>
@crusaderky
Copy link
Copy Markdown
Collaborator

Could you please also add a line to ws_with_running_task?

@hendrikmakait hendrikmakait requested a review from crusaderky July 6, 2022 15:13
@crusaderky crusaderky merged commit f7f6501 into dask:main Jul 6, 2022
@crusaderky
Copy link
Copy Markdown
Collaborator

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants