Skip to content

Commit 0511732

Browse files
Merge branch 'master' into feat/cassandra-multi-dc-execution-profiles
2 parents 121db2f + 276b6df commit 0511732

114 files changed

Lines changed: 14008 additions & 7813 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/security.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,44 @@ jobs:
6969
- name: Run safety scan
7070
continue-on-error: true
7171
run: safety scan --output json
72+
73+
govulncheck:
74+
name: Go Vulnerability Check (${{ matrix.module }})
75+
runs-on: ubuntu-latest
76+
timeout-minutes: 15
77+
permissions:
78+
contents: read
79+
80+
strategy:
81+
fail-fast: false
82+
matrix:
83+
include:
84+
- module: go-feature-server
85+
working-directory: .
86+
go-version-file: go.mod
87+
needs-protos: true
88+
- module: feast-operator
89+
working-directory: infra/feast-operator
90+
go-version-file: infra/feast-operator/go.mod
91+
needs-protos: false
92+
93+
steps:
94+
- name: Checkout repository
95+
uses: actions/checkout@v4
96+
97+
- name: Set up Go
98+
uses: actions/setup-go@v5
99+
with:
100+
go-version-file: ${{ matrix.go-version-file }}
101+
102+
- name: Compile Go protobuf files
103+
if: matrix.needs-protos
104+
run: make compile-protos-go
105+
106+
- name: Run govulncheck
107+
continue-on-error: true
108+
uses: golang/govulncheck-action@v1
109+
with:
110+
work-dir: ${{ matrix.working-directory }}
111+
go-package: ./...
112+
repo-checkout: false

.secrets.baseline

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,7 @@
14261426
"filename": "sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py",
14271427
"hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
14281428
"is_verified": false,
1429-
"line_number": 14
1429+
"line_number": 15
14301430
}
14311431
],
14321432
"sdk/python/tests/unit/local_feast_tests/test_init.py": [

Makefile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,7 @@ benchmark-python-local: ## Run integration + benchmark tests for Python (local d
168168

169169
test-python-unit: ## Run Python unit tests (use pattern=<pattern> to filter tests, e.g., pattern=milvus, pattern=test_online_retrieval.py, pattern=test_online_retrieval.py::test_get_online_features_milvus)
170170
uv run python -m pytest -n 8 --color=yes $(if $(pattern),-k "$(pattern)") \
171-
--ignore=sdk/python/tests/component/ray \
172-
--ignore=sdk/python/tests/component/spark \
173-
sdk/python/tests
171+
sdk/python/tests/unit
174172

175173
# Fast unit tests only
176174
test-python-unit-fast: ## Run fast unit tests only (no external dependencies)

docs/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
* [\[Alpha\] Streaming feature computation with Denormalized](reference/denormalized.md)
193193
* [\[Alpha\] Feature View Versioning](reference/alpha-feature-view-versioning.md)
194194
* [OpenLineage Integration](reference/openlineage.md)
195+
* [MLflow Integration](reference/mlflow.md)
195196
* [Feast CLI reference](reference/feast-cli-commands.md)
196197
* [Python API reference](http://rtd.feast.dev)
197198
* [Usage](reference/usage.md)

docs/getting-started/concepts/feature-retrieval.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,31 @@ Applying a feature service does not result in an actual service being deployed.
5252

5353
Feature services enable referencing all or some features from a feature view.
5454

55+
#### Pre-computed feature vectors (`precompute_online`)
56+
57+
For latency-critical online serving, you can enable **pre-computed feature vectors** on a feature service. When `precompute_online=True`, Feast stores all of the service's features for each entity as a single serialized blob in the online store. At read time, this reduces the number of store reads from O(N feature views) to O(1), regardless of how many feature views the service spans.
58+
59+
```python
60+
# A feature service with pre-computed vectors enabled
61+
low_latency_service = FeatureService(
62+
name="low_latency_inference",
63+
features=[driver_stats_fv, vehicle_stats_fv, route_features_fv],
64+
precompute_online=True,
65+
)
66+
```
67+
68+
After running `feast apply`, the pre-computed vectors are automatically built and refreshed whenever you run `feast materialize` or `feast materialize-incremental`. Feast detects which feature services have `precompute_online=True` and rebuilds their vectors for every affected entity after the per-feature-view writes complete. Vectors are also refreshed automatically on `feast push`.
69+
70+
{% hint style="info" %}
71+
`precompute_online` is **opt-in** — it defaults to `False`. When enabled, the pre-computed path is used exclusively for that service; there is no silent fallback to per-feature-view reads. If vectors are missing or stale, the server raises an error, making problems visible immediately.
72+
{% endhint %}
73+
74+
{% hint style="warning" %}
75+
`precompute_online` is not compatible with on-demand feature views (ODFVs) that have `write_to_online_store=False`. ODFVs with `write_to_online_store=True` are supported since their values are materialized.
76+
{% endhint %}
77+
78+
See the [performance tuning guide](../../how-to-guides/online-server-performance-tuning.md#pre-computed-feature-vectors) for benchmarks and detailed configuration.
79+
5580
Retrieving from the online store with a feature service
5681

5782
```python

0 commit comments

Comments
 (0)