Repository navigation
[python] Support distributed vector index construction with Ray - #10426
Merged
JingsongLi merged 3 commits intoOct 9, 2026
Merged
Conversation
JingsongLi
reviewed
Oct 8, 2026
Contributor
|
+1 |
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.
Purpose
Allow
create_global_indexand multimodalcreate_indexto build native vector-index shards withexecution="ray". The driver plans uncovered row ranges from one snapshot, workers construct shards with bounded concurrency, and the driver publishes all resulting entries in one commit. Local execution remains the default.Allocate output names before dispatch and disable automatic write-task retries. If a task fails, drain outstanding tasks before removing uncommitted shard files, including files whose commit messages were never returned. Document shared storage, dependency, snapshot-retention and driver-failure requirements.
Tests
50 targeted tests passed with Ray 2.54.0 and paimon-vindex 0.5.0, covering distributed construction, incremental coverage, deleted rows, one-commit publication, build/commit separation, cleanup after a worker writes then fails, option validation, and existing global-index/multimodal APIs. Flake8 and
git diff --checkpassed. No benchmark code included.Review follow-up: JindoFileSystemHandler now serializes only its root and connection options, reconstructing the native client, lock and size-hint cache during deserialization. Tests cover an unpicklable SDK client, a PyArrow filesystem round trip, and the complete builder/TableRead context crossing into a real Ray worker (only SDK Config/connect are substituted). The previous implementation fails the new pickle regression. Validation: 21 Jindo/vector-build tests passed on Ray 2.54.0; 19 real-SDK tests skipped because pyjindosdk is unavailable locally. The worker-context regression also passed on Ray 2.59.0.