afterincomparableyum opened a new pull request, #3730:
URL: https://github.com/apache/celeborn/pull/3730
<!--
Thanks for sending a pull request! Here are some tips for you:
- Make sure the PR title start w/ a JIRA ticket, e.g. '[CELEBORN-XXXX]
Your PR title ...'.
- Be sure to keep the PR description updated to reflect all changes.
- Please write your PR title to summarize what this PR proposes.
- If possible, provide a concise example to reproduce the issue for a
faster review.
-->
### What changes were proposed in this pull request?
Implement SlowStartPushStrategy in the C++ client, mirroring the Java
client's TCP-like congestion control for push speed:
- Track a per worker CongestControlContext that grows the in-flight request
limit on success (slow start, then congestion avoidance once the limit reaches
the threshold) and halves it on congestion, falling back to sleeping when
congestion persists at a limit of 1.
- Select the strategy through celeborn.client.push.limitStrategy=SLOWSTART
- Add configs celeborn.client.push.slowStart.initialSleepTime (default
500ms) and celeborn.client.push.slowStart.maxSleepTime (default 2s) to control
sleep intervals while ramping up.
- Add PushStrategyTest covering strategy creation, sleep time calculation,
congestion control, and per host isolation, and add to CelebornConfTest with
the new configs.
### Why are the changes needed?
This is needed to bridge the gap between features that the java client has
vs what the c++ client has.
### Does this PR resolve a correctness bug?
<!-- Check if yes. The `correctness` label will be added/removed
automatically. -->
- [ ] Yes
### Does this PR introduce _any_ user-facing change?
<!-- Check if yes. -->
- [ ] Yes
### How was this patch tested?
CI/CD
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]