Title: feat: Add versioning support for FAISS online store by rpathade · Pull Request #6196 · feast-dev/feast · GitHub
Open Graph Title: feat: Add versioning support for FAISS online store by rpathade · Pull Request #6196 · feast-dev/feast
X Title: feat: Add versioning support for FAISS online store by rpathade · Pull Request #6196 · feast-dev/feast
Description: 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 Graph Description: 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 SQ...
X Description: 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 SQ...
Opengraph URL: https://github.com/feast-dev/feast/pull/6196
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:df3cde18-add9-b35d-67c1-983856790cec |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CDCE:306D2B:1108C19:17C8208:6A4E940B |
| html-safe-nonce | 06fa9ae3d3eb930dddaa4e3aca6cffdfe1bd705f910f2437095a708c6ce9c4de |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRENFOjMwNkQyQjoxMTA4QzE5OjE3QzgyMDg6NkE0RTk0MEIiLCJ2aXNpdG9yX2lkIjoiNDQzMzM2NjQ3NzA5MzkwMTMyMyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | c642df6e507db1d2da19c107b5bb2719c9bfeced5a65f6b821bf556366702659 |
| hovercard-subject-tag | pull_request:3464029457 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/6196/files |
| twitter:image | https://avatars.githubusercontent.com/u/73137503?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/73137503?s=400&v=4 |
| og:image:alt | 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 SQ... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 41b6ab3ba6d20a71766ac245b5a4a94c6fc672a9cd4da7d44c1b33ab8bf6a21c |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e6a744804e8e70f97b4d5a18a94dcc63db22f97a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width