chroma-core / chroma-core/chroma
[Feature] Built-in collection versioning for zero-downtime index updates
- Dominant language
- Rust
- Stars
- 29.3k
- Forks
- 2.5k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 38
Description
## Description
When re-indexing a collection with updated embeddings or new documents, having built-in collection versioning would enable atomic swaps between old and new indexes without any query downtime.
## Proposed Pattern
```python
# Build new version in background
v2 = client.create_collection('docs_v2')
# ... populate v2 ...
# Atomic swap
client.swap_alias('docs', 'docs_v2')
```
This is a common pattern in search infrastructure (Elasticsearch aliases, Qdrant collection aliases) and would be very useful here.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing collection lifecycle and client API around create_collection; the issue names no files or tests. Compare the proposed create_collection('docs_v2') and swap_alias('docs','docs_v2') flow with current behavior, then clarify atomicity, version visibility, and completion tests with maintainers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100