feat: Add versioning support for FAISS online store#6196
Open
rpathade wants to merge 4 commits intofeast-dev:masterfrom
Open
feat: Add versioning support for FAISS online store#6196rpathade wants to merge 4 commits intofeast-dev:masterfrom
rpathade wants to merge 4 commits intofeast-dev:masterfrom
Conversation
c11eedc to
aa79070
Compare
ntkathole
reviewed
Apr 1, 2026
Signed-off-by: RutujaPathade <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>
8971b52 to
fe8c270
Compare
Signed-off-by: RutujaPathade <[email protected]>
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.
What this PR does / why we need it:
Closes #6173
Feature view versioning was introduced in #6101, but version-qualified feature references (e.g.
driver_stats@v2:trips_today) only worked with the SQLite online store. All other online stores raisedVersionedOnlineReadNotSupportedwhen a versioned ref was used.This PR adds versioned read/write support to the FAISS online store, following the same pattern as the SQLite reference implementation:
enable_online_feature_view_versioningis enabled,_table_idappends a_v{N}suffix to the in-memory key namespace (e.g.project_driver_stats_v2), routing materialization to the correct versioned index@v2) setprojection.version_tagon the feature view beforeonline_readis called;_table_idpicks this up and routes to the correct index.projection.version_tagtakes priority overcurrent_version_numberso explicit version requests are always honoured_index/_in_memory_storewith per-table_indices/_in_memory_storesdicts, so multiple feature views and versions can coexist in memory simultaneously_check_versioned_read_supportinonline_store.pynow allowsFaissOnlineStorethroughAll existing
online_read,online_write_batch,retrieve_online_documents,update, andteardownmethods are covered since every method resolves its namespace through_table_id.Which issue(s) this PR fixes:
Part of #2728
Checks
git commit -s)Testing Strategy
Added 11 unit tests covering
_table_idwith versioning disabled,projection.version_tagpriority overcurrent_version_number, version 0 edge case, no version info fallback, versioned write/read round trips, namespace isolation between versions, missing index handling, and teardown cleanup.Misc
"type"from mock config in tests to matchFaissOnlineStoreConfig's strict pydantic validation (no extra fields permitted)