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
### Building the experimental Python 3.14 free-threaded feature server image
170
+
```sh
171
+
make build-feature-server-experimental-docker
172
+
173
+
# Optional: compare it to the stable image with the sample local repo
174
+
make benchmark-feature-server-experimental
175
+
```
176
+
177
+
This experimental image is currently aimed at early compatibility and performance testing for the Python feature server. The benchmark target compares the stable and experimental containers against the sample local repo and is currently most representative for SQLite-backed serving experiments.
178
+
179
+
In the current SQLite benchmark run, the experimental `3.14t` image reached `157.01 req/s` versus `187.65 req/s` for the stable image, while improving p95 latency from `274.72 ms` to `262.61 ms`. Treat that as an early data point rather than a universal result: the free-threaded stack is still evolving, and dependency behavior can outweigh any no-GIL gains on a given workload.
180
+
169
181
### Code Style and Linting
170
182
Feast Python SDK and CLI codebase:
171
183
- Conforms to [Black code style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html)
Feast also ships an experimental feature-server container build for Python 3.14 free-threaded (`3.14t`) runtimes. This image is intended for benchmarking and early compatibility validation, not as the default production image.
59
+
60
+
Today, the experimental image is best treated as a SQLite-oriented serving experiment. The online-serving startup path has been trimmed to avoid eagerly importing `pandas`, which makes it a better fit for free-threaded serving benchmarks, but the broader Feast runtime and some offline-oriented paths still rely on dependencies that are not fully optimized for no-GIL execution yet.
61
+
62
+
```bash
63
+
# Build the stable image
64
+
make build-feature-server-docker
65
+
66
+
# Build the experimental no-GIL image
67
+
make build-feature-server-experimental-docker
68
+
69
+
# Compare the two images against the same sample feature repo
70
+
make benchmark-feature-server-experimental
71
+
```
72
+
73
+
The benchmark target writes a JSON report to `feature-server-experimental-benchmark.json` with throughput and latency comparisons for the stable and experimental containers. The current harness uses the sample local feature repo and is most useful for side-by-side SQLite serving comparisons. Because the free-threaded Python ecosystem is still evolving, treat the result as a workload-specific experiment and validate dependency compatibility before promoting it further.
74
+
75
+
On the current SQLite benchmark run that seeded this experiment, the experimental `3.14t` image delivered lower throughput but slightly better tail latency than the stable image:
That works out to about `16%` lower throughput for the experimental image, alongside about `4.6%` better p95 latency on this workload. In other words, the current no-GIL image is not yet a clear performance win for SQLite online serving, but it is now easy to benchmark and iterate on as dependencies improve.
81
+
56
82
## Deploying as a service
57
83
58
84
See [this](../../how-to-guides/running-feast-in-production.md#id-4.2.-deploy-feast-feature-servers-on-kubernetes) for an example on how to run Feast on Kubernetes using the Operator.
@@ -536,4 +562,4 @@ The [PyTorch NLP template](https://github.com/feast-dev/feast/tree/main/sdk/pyth
536
562
537
563
## How to configure Authentication and Authorization ?
538
564
539
-
Please refer the [page](./../../../docs/getting-started/concepts/permission.md) for more details on how to configure authentication and authorization.
565
+
Please refer the [page](./../../../docs/getting-started/concepts/permission.md) for more details on how to configure authentication and authorization.
0 commit comments