GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: Add versioning support for FAISS online store by rpathade · Pull Request #6196 · feast-dev/feast

Conversation

@rpathade

@rpathade rpathade commented Mar 30, 2026 •
edited by devin-ai-integration Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

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 raised VersionedOnlineReadNotSupported when 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:

  • Write path: when enable_online_feature_view_versioning is enabled, _table_id appends a _v{N} suffix to the in-memory key namespace (e.g. project_driver_stats_v2), routing materialization to the correct versioned index
  • Read path: version-qualified lookups (@v2) set projection.version_tag on the feature view before online_read is called; _table_id picks this up and routes to the correct index. projection.version_tag takes priority over current_version_number so explicit version requests are always honoured
  • Multi-table support: replaced single class-level _index/_in_memory_store with per-table _indices/_in_memory_stores dicts, so multiple feature views and versions can coexist in memory simultaneously
  • Gate: _check_versioned_read_support in online_store.py now allows FaissOnlineStore through

All existing online_read, online_write_batch, retrieve_online_documents, update, and teardown methods are covered since every method resolves its namespace through _table_id.

Which issue(s) this PR fixes:

Part of #2728

Checks

  • I've made sure the tests are passing.
  • My commits are signed off (git commit -s)
  • My PR title follows conventional commits format

Testing Strategy

  • Unit tests
  • Integration tests
  • Manual tests
  • Testing is not required for this change

Added 11 unit tests covering _table_id with versioning disabled, projection.version_tag priority over current_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

  • Removed "type" from mock config in tests to match FaissOnlineStoreConfig's strict pydantic validation (no extra fields permitted)

Open with Devin

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@rpathade
rpathade force-pushed the feat/faiss_online_store branch from c11eedc to aa79070 Compare March 30, 2026 03:50
@rpathade rpathade changed the title Removed unnecessary lazy imports feat: Add versioning support for FAISS online store Mar 30, 2026
@rpathade
rpathade marked this pull request as ready for review March 30, 2026 03:50
@rpathade
rpathade requested review from a team as code owners March 30, 2026 03:51
@rpathade
rpathade requested review from lokeshrangineni, robhowley and tokoko and removed request for a team March 30, 2026 03:51
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ntkathole
ntkathole reviewed Apr 1, 2026
View reviewed changes
Comment thread sdk/python/feast/infra/online_stores/faiss_online_store.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

rpathade added 3 commits April 1, 2026 22:49
@rpathade
Removed unnecessary lazy imports
286e5dc
Signed-off-by: RutujaPathade <[email protected]>
@rpathade
Resolve suggestions
c38454a
Signed-off-by: RutujaPathade <[email protected]>
@rpathade
fix: move mutable class attrs to __init__ in FaissOnlineStore
fe8c270
Signed-off-by: RutujaPathade <[email protected]>
@rpathade
rpathade force-pushed the feat/faiss_online_store branch from 8971b52 to fe8c270 Compare April 2, 2026 05:49
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rpathade
Resolve error message
cbb1088
Signed-off-by: RutujaPathade <[email protected]>
@ntkathole

ntkathole commented May 1, 2026

Copy link
Copy Markdown
Member

This is fixed via #6256, Thanks @rpathade

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole ntkathole closed this May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ntkathole ntkathole ntkathole left review comments
@devin-ai-integration devin-ai-integration[bot] devin-ai-integration[bot] left review comments
@robhowley robhowley Awaiting requested review from robhowley robhowley is a code owner automatically assigned from feast-dev/maintainers
@tokoko tokoko Awaiting requested review from tokoko tokoko is a code owner automatically assigned from feast-dev/maintainers
@lokeshrangineni lokeshrangineni Awaiting requested review from lokeshrangineni lokeshrangineni is a code owner automatically assigned from feast-dev/maintainers

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Add feature view versioning support to Faiss online store

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@rpathade @ntkathole
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.