original_dst: add batched host updates#38769
Conversation
Signed-off-by: Ronak Jain <ronakjainc@gmail.com>
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
|
could you check the CI first, thanks? |
|
friendly ping @jronak, looks like CI needs fixing |
|
@jronak needs main merge |
|
/wait |
|
@phlax ack, I'll rebase the PR soon. Apologies, I was unavailable for a week. |
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
This pull request has been automatically closed because it has not had activity in the last 37 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
Commit Message: Add batched host updates in original_dst cluster
Additional Description: Adds batching support for host updates in original_dst clusters to address performance bottlenecks on the main thread. With high fan-out clients with large numbers of active connections (e.g. 60k) and high unique host-port connection rates (e.g. 3k/s), the current per-connection addHost callbacks create significant pressure on the main thread. Each callback triggers a host map copy and priority set update, which is CPU heavy and impacts critical operations like metrics collection + health checks on the main thread.
The new
batch_update_intervalconfiguration option allows consolidating these updates into periodic batches, significantly reducing main thread overhead. This has been production-tested for 6+ months with positive results.Risk Level: Low
Testing: Unit tests
Docs Changes: proto docs
Release Notes: None
Platform Specific Features: None