fix: Allow serving features while a feature view is MATERIALIZING - #6789
Open
alan-gauthier-jt wants to merge 1 commit into
Open
fix: Allow serving features while a feature view is MATERIALIZING#6789alan-gauthier-jt wants to merge 1 commit into
alan-gauthier-jt wants to merge 1 commit into
Conversation
The lifecycle serving gate added in v0.64.0 rejects any feature view not in AVAILABLE_ONLINE / STATE_UNSPECIFIED state. Because materialization transitions a feature view to MATERIALIZING in the shared registry, routine incremental materialization interrupts concurrent feature servers with "cannot serve features. Only AVAILABLE_ONLINE feature views can serve." Add an opt-in registry config flag, serve_features_while_materializing (default False), that also permits serving while a feature view is MATERIALIZING, letting servers keep returning last-materialized values during materialization. States that never had online data (CREATED, GENERATED) remain gated. Fixes feast-dev#6780 Signed-off-by: Alan Gauthier <alan.gauthier@jobteaser.com>
alan-gauthier-jt
marked this pull request as ready for review
August 27, 2026 14:09
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6789 +/- ##
==========================================
+ Coverage 47.08% 47.10% +0.01%
==========================================
Files 419 419
Lines 51878 51885 +7
Branches 7525 7526 +1
==========================================
+ Hits 24429 24441 +12
+ Misses 25700 25697 -3
+ Partials 1749 1747 -2
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this does
Adds an opt-in registry config flag,
serve_features_while_materializing(defaultfalse), that lets online serving continue for a feature view while it is in theMATERIALIZINGstate.Problem
The lifecycle serving gate introduced in v0.64.0 (#6401) rejects any feature view whose state is not
AVAILABLE_ONLINEorSTATE_UNSPECIFIED:FeatureStore.materialize()transitions a feature view toMATERIALIZINGand commits that state to the registry. In the standard pattern — one shared registry, periodic incremental materialization, and a separatefeast serveprocess — this means routine materialization interrupts online serving until it completes.Fixes #6780.
Change
When
serve_features_while_materializing: trueis set underregistry:,MATERIALIZINGis added to the set of servable states, so servers keep returning the last-materialized values during materialization. States that never had online data (CREATED,GENERATED) remain gated, and the default (false) preserves current behavior.The flag follows the existing plumbing pattern of
enable_online_feature_view_versioning: aRegistryConfigfield, copied onto the registry object in__init__(protoRegistryandSqlRegistry), and read viagetattr(registry, ...)in the gate.Testing
test_feature_view_state.pycovering:MATERIALIZINGblocked by default, served when the flag is on,AVAILABLE_ONLINEserved regardless, andCREATEDstill blocked even with the flag on.ruff check/ruff formatclean;mypyclean; fulltest_feature_view_state.pysuite passes (33/33).Notes