Skip to content

Bug: On-Demand Feature Views (ODFV) on-write transformations not persisting #5430

@jfw-ppi

Description

@jfw-ppi

Expected Behavior

On-write transformations in On-Demand Feature Views (ODFV) should be triggered when data is pushed to the online store using:

  • store.push()
  • store.write_to_online_store()
  • materialize()

This worked correctly in Feast version 0.43.

Current Behavior

Since Feast version 0.43, only the on-read transformations are triggered. On-write transformations do not update the online store as expected - the values remain None. The tested versions are 0.43,0.44,0.45,0.46,0.47,0.49 with a Python 3.10.3 venv, that contains only the dependencies of feast[redis,postgres].

Steps to Reproduce

I have created a minimal repo demonstrating this issue:
https://github.com/j-wine/feast-odfv-user-test

The repo uses a dockerized environment with:

  • Python 3.10
  • Feast 0.49

The test script performs:

  1. push() to FeatureViews
  2. get_online_features() - shows ODFV on-read works, but on-write values are None
  3. write_to_online_store() - no change for on-write values
  4. materialize() - still no change

Example Output on Feast 0.49:

step 1: Push to basic FeatureViews

step 2: get_online_features post Push
product_id customer_id price_plus_revenue revenue_plus_one price_plus_rev
0 58 74 None None 50.0

step 3: write_to_online_store into basic feature view
res write_to_online:
product_id customer_id price_plus_revenue revenue_plus_one price_plus_rev
0 58 74 None None 50.0

Step 3: materialization
...
Step 4: get_online_features post materialization
product_id customer_id price_plus_revenue revenue_plus_one price_plus_rev
0 58 74 None None 50.0

Comparison Write-Time vs. Read-Time ODFV
price_plus_revenue: Missing (value: None)
revenue_plus_one: Missing (value: None)

Behavior in Feast 0.43:

Running the same test script with Feast 0.43 produces correct results - on-write transformations populate values properly. (Except for an old bug when using more than one entity in a fsv)

Specifications

  • Version: 0.49
  • Platform: Docker, Python 3.10.13, Ubuntu LTS / Ubuntu WSL
  • Subsystem: ODFV on-write transformations

Possible Solution

Suspected cause (based on discussion with Francisco and my debugging):

  • Integration tests might not fully cover this case.
  • Potential gap in unit tests for on-write transformations.

Additional Context

Francisco confirmed unit tests pass but suspects an edge case.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions