-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[BUG] Sparse vector index incorrect blockfile path #5418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Sparse vector index incorrect blockfile path #5418
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
Fix Sparse Vector Index Blockfile Path Consistency After Collection Fork This PR addresses a bug where, after a collection fork, newly created sparse vector index blockfiles were being placed under the child collection's prefix, which was inconsistent with other blockfiles that remained under the root collection's prefix. As an interim measure, the code is updated so that sparse vector blockfiles are also created under the original (root) collection's prefix, keeping all metadata segment blockfiles consistent post-fork. The change uses more idiomatic Rust (leveraging flattening of file paths) and improves related error handling. An extensive new asynchronous test is added to ensure correctness in scenarios involving collection forking and legacy segments. Key Changes• Modified logic in Affected Areas• rust/segment/src/ This summary was automatically generated by @propel-code-bot |
7f2053b
to
9a6e816
Compare
9a6e816
to
fa06ccb
Compare
218377e
to
ed8a479
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would be good to add a test for the other case we discussed offline
Extended existing test |
## Description of changes _Summarize the changes made by this PR._ - Improvements & Bug fixes - After collection fork, the sparse vector blockfile are put under the child collection prefix, which is inconsistent to the existing behavior where new blockfiles are put under the root collection prefix. Although the long term fix is to move all new blockfiles after fork under child collection prefix, as a temporary workaround we just put the sparse vector blockfiles under the root collection as well. - New functionality - N/A ## Test plan _How are these changes tested?_ - [ ] Tests pass locally with `pytest` for python, `yarn test` for js, `cargo test` for rust ## Migration plan _Are there any migrations, or any forwards/backwards compatibility changes needed in order to make sure this change deploys reliably?_ ## Observability plan _What is the plan to instrument and monitor this change?_ ## Documentation Changes _Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the [docs section](https://github.com/chroma-core/chroma/tree/main/docs/docs.trychroma.com)?_
This PR cherry-picks the commit 17e083a onto rc/2025-09-05. If there are unresolved conflicts, please resolve them manually. Co-authored-by: Macronova <[email protected]>
Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
pytest
for python,yarn test
for js,cargo test
for rustMigration plan
Are there any migrations, or any forwards/backwards compatibility changes needed in order to make sure this change deploys reliably?
Observability plan
What is the plan to instrument and monitor this change?
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs section?