You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
precompute_online: one push rebuilds every vector in the store, and the fast path never matches without full_feature_names #7074
Two things keep precompute_online=True from working on a store that takes pushes. Measured on Feast 0.67.0, Redis online store (Valkey 9.1), file registry.
One push rebuilds every vector in the store._precompute_for_push calls precompute_feature_service(svc.name) with no entity scope, so it SCANs the keyspace and rewrites a vector for every entity. With 200 entities in the store, a store.push of 1 row ran a SCAN plus 5 HMGET and 1 HSET per entity and took 177 ms, against 51 ms for the same push with no precompute service registered. The cost grows with the store, not with the push. We push about 560k rows a day, so this is a full rebuild per push.
The fast path never matches with default feature names. Vectors store <fv>__<feature> names. With the default full_feature_names=False the request expects bare names, _try_precomputed_fast_path logs a schema mismatch, and get_online_features raises for every read. It only works with full_feature_names=True, which is also the only way the existing unit tests call it.
Fix in #7076: precompute_feature_service(entity_keys=...) skips the scan, the push hook passes the distinct keys from the pushed frame (1-row push: 11 HMGET + 3 HSET, no SCAN, 3.7 ms), and the fast path compares names on the caller's naming.
Activity