Skip to content
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

HDDS-8334. ReplicationManager: Add nodes to exclude list if they are overloaded #4510

Merged
merged 2 commits into from Apr 1, 2023

Conversation

sodonnel
Copy link
Contributor

What changes were proposed in this pull request?

When sending throttled replication / reconstruction commands, we know if the target node is at the replication task limit. If it is, we should add it to an exclude list in replicationManager.

When the DN heartbeats, it triggers a callback to RM, which lets it check if the node should be removed from the exclude list.

The exclude list can then be fed into the node selection for reconstruction tasks, so it can avoid picking nodes which are already overloaded as targets, but that will be another Jira.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-8334

How was this patch tested?

New unit tests added.

* the datanode heartbeat is received, the node is removed from this set if
* the command count has dropped below the limit.
*/
private final Map<DatanodeDetails, Integer> excludedNodes =
Copy link
Contributor

Choose a reason for hiding this comment

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

In a future patch I think we can change to Boolean value.

@adoroszlai adoroszlai merged commit 3ecd87c into apache:master Apr 1, 2023
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants