Skip to content

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

Merged
moidx merged 1 commit intolowRISC:mainfrom
moidx:client-side-load-balancing
Jun 22, 2025
Merged

[ate]: Enable client-side load balancing and update docs#238
moidx merged 1 commit intolowRISC:mainfrom
moidx:client-side-load-balancing

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 <miguelosorio@google.com>
@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