enhance: wait for collection readiness via notifications - #36
Merged
sunby merged 1 commit intoSep 14, 2026
Merged
Conversation
Signed-off-by: sunby <sunbingyi1992@gmail.com>
sunby
merged commit Sep 14, 2026
86b1671
into
codex/load-1m-segments-pr-stack-rebased-qv-work
10 of 13 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic DQL readiness polls
ShowLoadCollectionsevery 10 ms while a collection loads, with separate loops for concurrent requests. Replace those loops with aWaitCollectionReadyRPC signaled by committed load-config changes and shard-state updates. Share load submission and readiness waiting per collection on each Proxy, including requests that already observe Loading, while retaining the direct DQL loading path from #15.The RPC checks every expected vchannel/replica pair. Subscribing before reading state prevents missed notifications; release invalidates existing subscriptions, and cancellation, load timeout and runtime shutdown end the RPC. Notification state is retained only for active waiters. Initial per-request readiness checks and explicit load-progress APIs remain available.
Related: #16 and #25. Issue tracking is disabled for this fork.
Design: Collection Readiness.
Upgrade MixCoord before Proxy: older coordinators do not implement the new RPC, and there is no polling fallback. The synchronous warmup policy in draft #17 remains separate from this PR.
Validation
Validated on base
7050f6f80ewith-tags dynamic,test -gcflags="all=-N -l"and the installed native libraries:-race -count=3, including real StreamingNode Up callbacks, gRPC deadlines/status, release, cancellation during a blocked catalog write, shared waits and automatic-load/requery queue regressions.0 issues;git diff --checkpassed.run_clang_format.shpassed with clang-format 15.0.7.make lint-fixran gofumpt/gci, then failed on the unchangedinternal/metastore/kv/querycoord/kv_catalog_test.go:372: undefined: mocks; pkg/client lint stages were not reached. Unrelated formatter changes were excluded.Production CPU/allocation savings and mixed-version rollout have not been measured.