Skip to content

v0.2.1

Latest

Choose a tag to compare

@killme2008 killme2008 released this 16 Jun 04:22

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.Balancer round-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 Endpoints are now rejected during validation.

See CHANGELOG.md for details.

Notable PRs

Dependency updates

Full Changelog: v0.2.0...v0.2.1