enhance: resolve global cluster topology via DNS SRV records - #3753
enhance: resolve global cluster topology via DNS SRV records#3753huanghaoyuanhhy wants to merge 1 commit into
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: huanghaoyuanhhy The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Tick the box to add this pull request to the merge queue (same as
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3753 +/- ##
==========================================
- Coverage 94.12% 94.10% -0.02%
==========================================
Files 76 76
Lines 15821 16045 +224
==========================================
+ Hits 14891 15099 +208
- Misses 930 946 +16 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Discover ha-manager seed servers through the _grpc._tcp.<host> SRV record set instead of hitting the global endpoint directly, then concurrently probe the nearest seeds (spanning priorities) and use the topology with the highest version. The topology request now carries the raw endpoint hostname verbatim via the ?endpoint= query parameter; the server derives the global cluster id from it (its first DNS label), so the SDK does no gcid parsing. Endpoints without SRV records raise instead of falling back to the legacy beta path. Adds a dnspython dependency for SRV resolution. Signed-off-by: huanghaoyuanhhy <haoyuan.huang@zilliz.com>
bff88a1 to
cee8d91
Compare
Why
Global cluster connections previously fetched topology by hitting the global endpoint directly. This PR switches the SDK to discover ha-manager seed servers through the
_grpc._tcp.<host>SRV record set, probe them concurrently, and use the topology with the highest version — with strict no-rollback semantics for every subsequent refresh path.What changed
_grpc._tcp.<endpoint hostname>to the ha-manager seed list (typically 1-5 servers, ordered; priority/weight are not differentiated in deployment). Endpoints without SRV records raise instead of falling back to the legacy direct-endpoint path.?endpoint=; the server derives the global cluster id from its first DNS label, so the SDK does no gcid parsing.dnspythondependency for SRV resolution.Tests
193 passedDeployment note
HA manager SRV records must be in place before this SDK version ships — endpoints without SRV records will raise instead of falling back to the legacy path.