perf(vector-search): execute PK-vector leaves concurrently - #647
Merged
Conversation
JunRuiLee
force-pushed
the
perf/pk-vector-concurrent-ann
branch
from
August 1, 2026 06:20
80367d7 to
97f2fcd
Compare
This was referenced Aug 1, 2026
JunRuiLee
force-pushed
the
perf/pk-vector-concurrent-ann
branch
6 times, most recently
from
August 3, 2026 12:43
ae4223c to
084a450
Compare
JunRuiLee
force-pushed
the
perf/pk-vector-concurrent-ann
branch
from
August 4, 2026 14:11
084a450 to
b2dd1fd
Compare
JunRuiLee
marked this pull request as ready for review
August 4, 2026 14:13
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
This is PR 3/3 of the stacked vector-search performance series. The preceding
PRs #645 and #646 have been merged into
main, and this branch has been rebasedonto the current
mainso the PR diff is isolated to concurrent PK-vector leafexecution.
PK-vector bucket search previously did not execute all independent search work
concurrently. ANN segments and exact-fallback files were scheduled in separate
phases, and ANN CPU work could run inline or serially despite a configured
global-index.thread-numgreater than one.This change represents ANN segments and uncovered exact files as independent
leaves, executes them through one bounded concurrency window, and moves blocking
index searches to the shared process-level executor.
Brief change log
buffered.
process-level executor.
fallback files.
its logical capacity separate from the executor's physical OS-thread cap.
global-index.thread-numagainst Tokio's semaphore limit.caller cancellation without blocking Tokio runtime threads.
Tests
cargo check -p paimoncargo test -p paimon --lib— 2142 passed, 1 ignoredcargo test -p paimon --test pk_vector_baseline_test— 8 passedcargo test -p paimon --test pk_vector_batch_test— 10 passedcargo test -p paimon --test pk_vector_java_fixture_test— 1 passedcargo fmt --all -- --checkgit diff --checkAPI and Format
No public API or storage-format changes. The existing
global-index.thread-numoption and default value are retained.Documentation
No user-facing documentation changes are required. The concurrency and execution
changes are internal to vector-index reads.