This release reworks multi-endpoint handling and adds request-level failover for unary writes/deletes.
Highlights
Added
GreptimeClientOptions.Failover(FailoverOptions) — request-level failover for multi-endpoint clients. Unary write/delete requests are retried against another endpoint after safe transient transport failures or retryable GreptimeDB server status codes. Tunables:Enabled,MaxAttempts,ConsecutiveFailuresBeforeEjection,BaseEjectionDelay,MaxEjectionDelay. Endpoints that fail repeatedly are ejected from selection with exponential backoff and reinstated automatically.GreptimeServerException— surfaces the GreptimeDB server status code from the response trailer, so callers can distinguish retryable from terminal server errors.
Changed
- Replaced the
Grpc.Net.Client.Balancerround-robin channel with a client-side endpoint selector that performs request-level failover. Only unary writes/deletes are replayed; client-side write deadlines are not replayed because the outcome is ambiguous. Streaming and bulk writers are not replayed automatically — their final transport outcome updates endpoint health so the next writer picks a healthy endpoint.LoadBalancing(Random/RoundRobin) still selects the per-request endpoint. - Duplicate entries in
Endpointsare now rejected during validation.
See CHANGELOG.md for details.
Notable PRs
- Endpoint failover for unary writes by @killme2008 in #66
Dependency updates
- Bump the testing group with 1 update by @dependabot[bot] in #43
- Bump Microsoft.Extensions.Configuration.Abstractions and 4 others by @dependabot[bot] in #42
- chore(deps): bump proto from
26a50f4to0de5437by @dependabot[bot] in #41 - Bump the microsoft group with 6 updates by @dependabot[bot] in #48
- Bump Apache.Arrow and Apache.Arrow.Flight by @dependabot[bot] in #53
- Bump the testing group with 1 update by @dependabot[bot] in #51
- Bump the grpc group with 1 update by @dependabot[bot] in #50
- chore(deps): bump proto from
0de5437toa107830by @dependabot[bot] in #49 - chore(deps): bump proto from
a107830to5e35831by @dependabot[bot] in #63 - Bump the microsoft group with 6 updates by @dependabot[bot] in #64
- Bump the grpc group with 2 updates by @dependabot[bot] in #65
- Bump the testing group with 3 updates by @dependabot[bot] in #61
Full Changelog: v0.2.0...v0.2.1