Skip to content

[ate]: Enable client-side load balancing and update docs #238

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

Merged
merged 1 commit into from
Jun 22, 2025

Conversation

moidx
Copy link
Collaborator

@moidx moidx commented Jun 21, 2025

This change introduces gRPC client-side load balancing to the ATE client library and documents its usage.

ATE Client Library:

  • The client options now accept a pa_target in gRPC name-syntax format (e.g., "ipv4:host1:port,host2:port") to enable connecting to multiple server instances.
  • A load_balancing_policy option has been added to allow callers to select policies like "round_robin".
  • The client creation logic was updated to use grpc::CreateCustomChannel to apply the specified load balancing configuration.
  • Test programs and integration test scripts were updated to use the new --pa_target and --load_balancing_policy flags.

Documentation (docs/ate.md):

  • Added a section on "Client-Side Load Balancing and Failover," explaining how to configure it and what to expect during partial and total server outages.
  • Added a "Client Lifecycle and Resource Management" section outlining best practices for creating and destroying the client instance.
  • Added a "Monitoring and Debugging" section that instructs users on how to enable gRPC tracing via environment variables to debug connection health and load balancer behavior.

@moidx moidx requested a review from timothytrippel June 21, 2025 08:47
@moidx moidx closed this Jun 21, 2025
@moidx moidx reopened this Jun 21, 2025
This change introduces gRPC client-side load balancing to the ATE client
library and documents its usage.

ATE Client Library:
- The client options now accept a `pa_target` in gRPC name-syntax format
  (e.g., "ipv4:host1:port,host2:port") to enable connecting to multiple
  server instances.
- A `load_balancing_policy` option has been added to allow callers to
  select policies like "round_robin".
- The client creation logic was updated to use `grpc::CreateCustomChannel`
  to apply the specified load balancing configuration.
- Test programs and integration test scripts were updated to use the new
  `--pa_target` and `--load_balancing_policy` flags.

Documentation (`docs/ate.md`):
- Added a section on "Client-Side Load Balancing and Failover,"
  explaining how to configure it and what to expect during partial and
  total server outages.
- Added a "Client Lifecycle and Resource Management" section outlining
  best practices for creating and destroying the client instance.
- Added a "Monitoring and Debugging" section that instructs users on
  how to enable gRPC tracing via environment variables to debug
  connection health and load balancer behavior.

Signed-off-by: Miguel Osorio <[email protected]>
@moidx moidx force-pushed the client-side-load-balancing branch from f33e959 to 4ebb924 Compare June 22, 2025 05:34
@moidx moidx merged commit dd9f327 into lowRISC:main Jun 22, 2025
3 of 4 checks passed
@moidx moidx deleted the client-side-load-balancing branch June 22, 2025 05:48
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