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 feature view versioning support to FAISS online store by YassinNouh21 · Pull Request #6256 · feast-dev/feast

Conversation

@YassinNouh21

@YassinNouh21 YassinNouh21 commented Apr 10, 2026 •
edited by devin-ai-integration Bot
Loading

Uh oh!

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

Copy link
Copy Markdown
Collaborator

Summary

  • When enable_online_feature_view_versioning is enabled, FAISS indices are namespaced by versioned table keys (e.g. project_driver_stats_v2) so multiple feature view versions coexist in memory
  • Refactored singleton _index/_in_memory_store to per-table dictionaries (_indices/_in_memory_stores)
  • Reuses shared compute_table_id() from helpers.py for consistency with PostgreSQL and MySQL stores (feat: Add feature view versioning support to PostgreSQL and MySQL online stores #6193)
  • Registered FaissOnlineStore in _check_versioned_read_support() gate

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 SQLite, PostgreSQL, and MySQL online stores. 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 PostgreSQL/MySQL implementation (#6193):

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

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 16 unit tests covering _table_id with versioning disabled/enabled, projection.version_tag priority over current_version_number, version 0 edge case, versioned read support gate, versioned write/read round trips, namespace isolation between versions, missing index handling, and teardown cleanup.


Open with Devin

Sorry, something went wrong.

Uh oh!

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

All reactions
@YassinNouh21
feat: Add feature view versioning support to FAISS online store
5123bed
When enable_online_feature_view_versioning is enabled, FAISS indices
are namespaced by versioned table keys (e.g. project_driver_stats_v2)
so multiple feature view versions can coexist in memory. Reuses the
shared compute_table_id() from helpers.py for consistency with
PostgreSQL and MySQL stores.

Signed-off-by: yassinnouh21 <[email protected]>
@YassinNouh21
YassinNouh21 requested review from a team as code owners April 10, 2026 10:24
@YassinNouh21
YassinNouh21 requested review from dmartinol, ejscribner and tokoko and removed request for a team April 10, 2026 10:24
@YassinNouh21 YassinNouh21 self-assigned this Apr 10, 2026
devin-ai-integration[bot]
devin-ai-integration Bot reviewed Apr 10, 2026
View reviewed changes

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 5 additional findings.

Open in Devin Review

Sorry, something went wrong.

Uh oh!

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

All reactions
@YassinNouh21
YassinNouh21 requested review from franciscojavierarceo and ntkathole and removed request for dmartinol, ejscribner and tokoko April 10, 2026 12:53
ntkathole
ntkathole reviewed Apr 11, 2026
View reviewed changes
Comment thread sdk/python/feast/errors.py
super().__init__(
f"Versioned feature reads (@v{version}) are not yet supported by {store_name}. "
f"Currently only SQLite, PostgreSQL, and MySQL support version-qualified feature references. "
f"Currently only SQLite, PostgreSQL, MySQL, and FAISS support version-qualified feature references. "

@ntkathole ntkathole Apr 11, 2026

Copy link
Copy Markdown
Member

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.

probbaly in future PRs we should get rid of this, it needs update everytime

Sorry, something went wrong.

Uh oh!

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

All reactions

@YassinNouh21 YassinNouh21 Apr 11, 2026

Copy link
Copy Markdown
Collaborator Author

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.

Why?

Sorry, something went wrong.

Uh oh!

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

All reactions

@ntkathole ntkathole Apr 11, 2026

Copy link
Copy Markdown
Member

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.

to be less prone to error regarding that message being incorrect or outdated as new support being added

Sorry, something went wrong.

Uh oh!

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

All reactions
ntkathole
ntkathole approved these changes Apr 11, 2026
View reviewed changes
@ntkathole ntkathole added the ok-to-test label Apr 11, 2026
@ntkathole
ntkathole merged commit b36acb7 into feast-dev:master Apr 11, 2026
36 of 37 checks passed

Uh oh!

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

@YassinNouh21
YassinNouh21 deleted the feat/faiss-versioning branch April 11, 2026 15:00
@ntkathole ntkathole mentioned this pull request May 1, 2026
feat: Add versioning support for FAISS online store #6196
Closed
4 of 7 tasks
This was referenced Aug 18, 2026
feat: Add feature view versioning to Couchbase online store #6754
Open
feat: Add feature view versioning to HBase online store #6755
Open
feat: Add feature view versioning to Hazelcast online store #6757
Open
@alekseevpavel04 alekseevpavel04 mentioned this pull request Aug 20, 2026
feat: Support feature view versioning in the Cassandra online store #6766
Open
4 of 7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ntkathole ntkathole ntkathole approved these changes
@devin-ai-integration devin-ai-integration[bot] devin-ai-integration[bot] left review comments
@franciscojavierarceo franciscojavierarceo Awaiting requested review from franciscojavierarceo

Uh oh!

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

Assignees

@YassinNouh21 YassinNouh21

Labels

ok-to-test

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

@YassinNouh21 @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 01402503 — 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.