X Tutup
Skip to content

fix: Disable materialized odfvs for historical retrieval#5880

Merged
franciscojavierarceo merged 2 commits intofeast-dev:masterfrom
astronautas:fix/disable-materialized-odfvs-for-historical-retrieval
Jan 26, 2026
Merged

fix: Disable materialized odfvs for historical retrieval#5880
franciscojavierarceo merged 2 commits intofeast-dev:masterfrom
astronautas:fix/disable-materialized-odfvs-for-historical-retrieval

Conversation

@astronautas
Copy link
Contributor

@astronautas astronautas commented Jan 19, 2026

What this PR does / why we need it:

See here. In essence, makes sure ODFV with write_to_online_store=True - meaning, cached - (on-demand feature views) get actually computed when querying offline store (get_historical_features) for training set generating, since as per docs (and generic expectation), offline stores do not store precomputed on demand feature view historical values (only online stores store their latest values).

Which issue(s) this PR fixes:

#5776

@astronautas astronautas requested a review from a team as a code owner January 19, 2026 07:08
@astronautas astronautas force-pushed the fix/disable-materialized-odfvs-for-historical-retrieval branch from 78ff90f to c2e42d0 Compare January 19, 2026 07:09
@astronautas astronautas changed the title Fix/disable materialized odfvs for historical retrieval fix: disable materialized odfvs for historical retrieval Jan 19, 2026
@astronautas astronautas changed the title fix: disable materialized odfvs for historical retrieval Fix: disable materialized odfvs for historical retrieval Jan 19, 2026
@astronautas astronautas changed the title Fix: disable materialized odfvs for historical retrieval fix: Disable materialized odfvs for historical retrieval Jan 19, 2026
@astronautas
Copy link
Contributor Author

added some explanations for the context

@astronautas
Copy link
Contributor Author

@franciscojavierarceo

@astronautas
Copy link
Contributor Author

@ntkathole @franciscojavierarceo

FAILED sdk/python/tests/integration/registration/test_universal_registry.py::test_modify_feature_views_success[gcs_registry] - google.api_core.exceptions.TooManyRequests: 429 PUT https://storage.googleapis.com/upload/storage/v1/b/feast-registry-test-1768823153244/o?uploadType=resumable&upload_id=AJRbA5UkNFZsOvkuNKwLRRw4-oOTH9U9Rue973jdMFgJYYKN8LGRKVCmJ-cUy5ggGbPoW56hTKbEjwLItL1LPOaXkSaVZgZhZQbyu5gL4zsyKA: ***
  "error": ***
    "code": 429,
    "message": "The object feast-registry-test-1768823153244/registry.db exceeded the rate limit for object mutation operations (create, update, and delete). Please reduce your request rate. See https://cloud.google.com/storage/docs/gcs429.",
    "errors": [
      ***
        "message": "The object feast-registry-test-1768823153244/registry.db exceeded the rate limit for object mutation operations (create, update, and delete). Please reduce your request rate. See https://cloud.google.com/storage/docs/gcs429.",
        "domain": "usageLimits",
        "reason": "rateLimitExceeded"
      ***
    ]
  ***

seen this? Seems like a quota.

@astronautas
Copy link
Contributor Author

@franciscojavierarceo Seems to have passed now 😁

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes an issue where materialized on-demand feature views (ODFVs) were incorrectly using precomputed values during historical retrieval operations. The fix ensures that ODFVs are always recomputed when querying the offline store for training set generation, aligning with the documented behavior that offline stores do not store precomputed ODFV values.

Changes:

  • Force ODFVs to recompute during historical retrieval by disabling write_to_online_store
  • Add pytest-xdist as a development dependency
  • Add a new Makefile target for running historical retrieval integration tests

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
sdk/python/feast/feature_store.py Disables write_to_online_store for all ODFVs before historical retrieval to ensure recomputation
pyproject.toml Adds pytest-xdist development dependency for parallel test execution
Makefile Adds new test target for running historical retrieval integration tests

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@astronautas astronautas force-pushed the fix/disable-materialized-odfvs-for-historical-retrieval branch from 0ff5dc2 to dafd8d2 Compare January 21, 2026 07:50
@astronautas
Copy link
Contributor Author

@franciscojavierarceo Random ray unit test failure, can we re-run? What's the way of self re-running the pipeline btw, seems akward asking you everytime haha.

@astronautas
Copy link
Contributor Author

@franciscojavierarceo Seems good now, also adjusted based on copilot suggestions ;)

Copy link
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i recently refactored some things to cleanup the code, looks like your changes remove them. can you fix that?

Signed-off-by: lukas.valatka <lukas.valatka@cast.ai>
@astronautas astronautas force-pushed the fix/disable-materialized-odfvs-for-historical-retrieval branch from dafd8d2 to 44e8076 Compare January 22, 2026 15:02
@astronautas
Copy link
Contributor Author

@franciscojavierarceo Rebased, all good now!

not test_snowflake" \
sdk/python/tests

test-python-historical-retrieval:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

@franciscojavierarceo franciscojavierarceo merged commit 739d28a into feast-dev:master Jan 26, 2026
17 checks passed
YassinNouh21 pushed a commit to YassinNouh21/feast that referenced this pull request Feb 7, 2026
)

Disable ODFVs for offline retrieval

Signed-off-by: lukas.valatka <lukas.valatka@cast.ai>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
YassinNouh21 pushed a commit to YassinNouh21/feast that referenced this pull request Feb 7, 2026
)

Disable ODFVs for offline retrieval

Signed-off-by: lukas.valatka <lukas.valatka@cast.ai>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
franciscojavierarceo pushed a commit that referenced this pull request Feb 17, 2026
# [0.60.0](v0.59.0...v0.60.0) (2026-02-17)

### Bug Fixes

* Added a flag to correctly download the go binaries ([0f77135](0f77135))
* Adds mapping of date Trino's type into string Feast's type ([531e839](531e839))
* **ci:** Use uv run for pytest in master_only benchmark step ([#5957](#5957)) ([5096010](5096010))
* Disable materialized odfvs for historical retrieval ([#5880](#5880)) ([739d28a](739d28a))
* Fix linting and formatting issues ([#5907](#5907)) ([42ca14a](42ca14a))
* Make timestamp field handling  compatible with Athena V3 ([#5936](#5936)) ([e2bad34](e2bad34))
* Support pgvector under non-default schema ([#5970](#5970)) ([c636cd4](c636cd4))
* unit tests not running on main branch ([#5909](#5909)) ([62fe664](62fe664))
* Update java dep which blocking release ([#5903](#5903)) ([a5b8186](a5b8186))
* Update the dockerfile with golang 1.24.12. ([#5918](#5918)) ([be1b522](be1b522))
* Use context.Background() in client constructors ([#5897](#5897)) ([984f93a](984f93a))

### Features

* Add blog post for PyTorch ecosystem announcement ([#5906](#5906)) ([d2eb629](d2eb629))
* Add blog post on Feast dbt integration ([#5915](#5915)) ([b3c8138](b3c8138))
* Add DynamoDB in-place list update support for array-based features ([#5916](#5916)) ([aa5973f](aa5973f))
* Add HTTP connection pooling for remote online store client ([#5895](#5895)) ([e022bf8](e022bf8))
* Add integration tests for dbt import ([#5899](#5899)) ([a444692](a444692))
* Add lazy initialization and feature service caching ([#5924](#5924)) ([b37b7d0](b37b7d0))
* Add multiple entity support to dbt integration ([#5901](#5901)) ([05a4fb5](05a4fb5)), closes [#5872](#5872)
* Add PostgreSQL online store support for Go feature server ([#5963](#5963)) ([b8c6f3d](b8c6f3d))
* Add publish docker image of Go feature server. ([#5923](#5923)) ([759d8c6](759d8c6))
* Add Set as feature type ([#5888](#5888)) ([52458fc](52458fc))
* Added online server worker config support in operator ([#5926](#5926)) ([193c72a](193c72a))
* Added support for OpenLineage integration ([#5884](#5884)) ([df70d8d](df70d8d))
* Adjust ray offline store to support abfs(s) ADLS Azure Storage ([#5911](#5911)) ([d6c0b2d](d6c0b2d))
* Batch_engine config injection in feature_store.yaml through operator ([#5938](#5938)) ([455d56c](455d56c))
* Consolidate Python packaging - remove setup.py/setup.cfg, standardize on pyproject.toml and uv ([16696b8](16696b8))
* **go:** Add MySQL registry store support for Go feature server ([#5933](#5933)) ([19f9bb8](19f9bb8))
* Improve local dev experience with file-aware hooks and auto parallelization ([#5956](#5956)) ([839b79e](839b79e))
* Modernize precommit hooks and optimize test performance ([#5929](#5929)) ([ea7d4fa](ea7d4fa))
* Optimize container infrastructure for production ([#5881](#5881)) ([5ebdac8](5ebdac8))
* Optimize DynamoDB online store for improved latency ([#5889](#5889)) ([fcc8274](fcc8274))
soooojinlee pushed a commit to soooojinlee/feast that referenced this pull request Feb 18, 2026
# [0.60.0](feast-dev/feast@v0.59.0...v0.60.0) (2026-02-17)

### Bug Fixes

* Added a flag to correctly download the go binaries ([0f77135](feast-dev@0f77135))
* Adds mapping of date Trino's type into string Feast's type ([531e839](feast-dev@531e839))
* **ci:** Use uv run for pytest in master_only benchmark step ([feast-dev#5957](feast-dev#5957)) ([5096010](feast-dev@5096010))
* Disable materialized odfvs for historical retrieval ([feast-dev#5880](feast-dev#5880)) ([739d28a](feast-dev@739d28a))
* Fix linting and formatting issues ([feast-dev#5907](feast-dev#5907)) ([42ca14a](feast-dev@42ca14a))
* Make timestamp field handling  compatible with Athena V3 ([feast-dev#5936](feast-dev#5936)) ([e2bad34](feast-dev@e2bad34))
* Support pgvector under non-default schema ([feast-dev#5970](feast-dev#5970)) ([c636cd4](feast-dev@c636cd4))
* unit tests not running on main branch ([feast-dev#5909](feast-dev#5909)) ([62fe664](feast-dev@62fe664))
* Update java dep which blocking release ([feast-dev#5903](feast-dev#5903)) ([a5b8186](feast-dev@a5b8186))
* Update the dockerfile with golang 1.24.12. ([feast-dev#5918](feast-dev#5918)) ([be1b522](feast-dev@be1b522))
* Use context.Background() in client constructors ([feast-dev#5897](feast-dev#5897)) ([984f93a](feast-dev@984f93a))

### Features

* Add blog post for PyTorch ecosystem announcement ([feast-dev#5906](feast-dev#5906)) ([d2eb629](feast-dev@d2eb629))
* Add blog post on Feast dbt integration ([feast-dev#5915](feast-dev#5915)) ([b3c8138](feast-dev@b3c8138))
* Add DynamoDB in-place list update support for array-based features ([feast-dev#5916](feast-dev#5916)) ([aa5973f](feast-dev@aa5973f))
* Add HTTP connection pooling for remote online store client ([feast-dev#5895](feast-dev#5895)) ([e022bf8](feast-dev@e022bf8))
* Add integration tests for dbt import ([feast-dev#5899](feast-dev#5899)) ([a444692](feast-dev@a444692))
* Add lazy initialization and feature service caching ([feast-dev#5924](feast-dev#5924)) ([b37b7d0](feast-dev@b37b7d0))
* Add multiple entity support to dbt integration ([feast-dev#5901](feast-dev#5901)) ([05a4fb5](feast-dev@05a4fb5)), closes [feast-dev#5872](feast-dev#5872)
* Add PostgreSQL online store support for Go feature server ([feast-dev#5963](feast-dev#5963)) ([b8c6f3d](feast-dev@b8c6f3d))
* Add publish docker image of Go feature server. ([feast-dev#5923](feast-dev#5923)) ([759d8c6](feast-dev@759d8c6))
* Add Set as feature type ([feast-dev#5888](feast-dev#5888)) ([52458fc](feast-dev@52458fc))
* Added online server worker config support in operator ([feast-dev#5926](feast-dev#5926)) ([193c72a](feast-dev@193c72a))
* Added support for OpenLineage integration ([feast-dev#5884](feast-dev#5884)) ([df70d8d](feast-dev@df70d8d))
* Adjust ray offline store to support abfs(s) ADLS Azure Storage ([feast-dev#5911](feast-dev#5911)) ([d6c0b2d](feast-dev@d6c0b2d))
* Batch_engine config injection in feature_store.yaml through operator ([feast-dev#5938](feast-dev#5938)) ([455d56c](feast-dev@455d56c))
* Consolidate Python packaging - remove setup.py/setup.cfg, standardize on pyproject.toml and uv ([16696b8](feast-dev@16696b8))
* **go:** Add MySQL registry store support for Go feature server ([feast-dev#5933](feast-dev#5933)) ([19f9bb8](feast-dev@19f9bb8))
* Improve local dev experience with file-aware hooks and auto parallelization ([feast-dev#5956](feast-dev#5956)) ([839b79e](feast-dev@839b79e))
* Modernize precommit hooks and optimize test performance ([feast-dev#5929](feast-dev#5929)) ([ea7d4fa](feast-dev@ea7d4fa))
* Optimize container infrastructure for production ([feast-dev#5881](feast-dev#5881)) ([5ebdac8](feast-dev@5ebdac8))
* Optimize DynamoDB online store for improved latency ([feast-dev#5889](feast-dev#5889)) ([fcc8274](feast-dev@fcc8274))

Signed-off-by: soojin <soojin@dable.io>
jyejare pushed a commit to opendatahub-io/feast that referenced this pull request Mar 9, 2026
)

Disable ODFVs for offline retrieval

Signed-off-by: lukas.valatka <lukas.valatka@cast.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

X Tutup