Pewarta Proxy

📋 Server Request & Proxy Logs

Loading active proxy settings...
Developed by Khairul Adha (adhexa.id)
Mengambil log server...

⚙️ Pengaturan Proxy Target

Skip to content

precompute_online: one push rebuilds every vector in the store, and the fast path never matches without full_feature_names #7074

Open

Description

@chandlerok

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions