lance-format / lance-format/lance
Add migration path for indices
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7.1k
- Forks
- 852
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 272
Description
We sometimes discover bugs in our indices. For example https://github.com/lancedb/lance/pull/3765. Having a way to detect that an index was written by a buggy version, and then retrain the index, would be useful.
- We could detect the buggy index by looking at the version that trained the index (the index stores the dataset version it was trained against) but we need to confirm this dataset version isn't updated by remapping / etc. or else it may not be usable. We could also add a new "index version" concept. This could be independently useful as we sometimes add new features to indices (e.g. using a newer format version).
- Migrating an index could be potentially expensive. It's unclear that we want to automatically trigger it during a commit like we do for other migrations. We may need to introduce a new operation to support this kind of migration. Or we could do it as part of a call to update the index (I believe some, if not all, indices already support a "retrain" option during update)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked pull request #3765 and the index metadata described in this issue, especially whether the stored dataset version changes during remapping. Compare the proposed index-version and migration-trigger options. Done means an agreed path can detect affected indices, retrain them, and define whether migration runs during commit, update, or a separate operation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100