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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions