v0.34.0_1

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-17 20:34:13 +02:00
1 parent 9b3d6731cc
commit 00f29f92c8
68 files changed
+2599 -513

No files matched your search

+63 -1
View File
@@ -1,4 +1,66 @@
# RustProxy 0.33.8
# RustProxy 0.34.0
## 0.34.0: reverse-proxy hot-path optimization revision (source candidate)
This revision retains the **0.34.0** version and all prior scoped-cache,
`sendfile`, security, logging and vhost/administration controls. In the
uncached reverse-proxy hot path, request observation now passes the immutable
selected route/frontend directly to forwarding; compiled locations are stored
as shared `Arc` handles instead of cloning their headers, regexes and policies.
Exact-host routing avoids wildcard temporary strings unless needed.
Single-member non-cookie load balancers bypass candidate vector allocation
and the shared weighted round-robin scheduler mutex, but still enforce
health, drain, pool eligibility, capacity and leases. Multi-member policies,
sticky cookies and weighted RR retain their existing selection rules. Healthy
backend observations use an atomic fast path; resolved per-member health
settings are shared across leases. Failure/quarantine/recovery transitions
retain their existing locked state machine.
Requests without configured error fallbacks no longer clone request headers
for error replay. Safe/empty request retry headers are saved only if a
multi-backend retry or upstream H2 close replay is possible. Exchange source,
cache-enabled and transform-enabled log flags move from mutexes to atomic tags
with **unchanged emitted log fields**. Live log records are cloned for
subscribers only while subscribers exist; history and external sinks remain.
These changes have **not** been compiled or timed in this environment, and
there is no claimed 0.34.0 RPS improvement. Build and run the regression and
nginx benchmark matrix before deployment. See
[`docs/PROXY_HOTPATH_0.34.0.md`](docs/PROXY_HOTPATH_0.34.0.md) for invariants,
checks and exact measurement commands.
## 0.34.0: scoped cache, proxy accounting and opt-in Linux sendfile
An operational vhost save (including every upstream keepalive/recycle knob,
LB health/weight, backend concurrency, diagnostic controls and timeouts)
no longer purges the HOT or COLD cache. Origin/content policy changes purge
only the affected vhost(s); global cache/transform/headers/forwarding and
Web Service changes still trigger the conservative global invalidation.
Persistent COLD entries carry a vhost content fingerprint, preventing stale
reloading after an interrupted scoped purge. The global cache identity changed
for this release, so existing 0.33.8 COLD entries may require one-time refilling.
Reverse-proxy response metering now snapshots the selected backend lease after
routing and avoids locking backend selection for each response DATA frame.
Request-body metering, timeouts, cancellation, accounting and HTTP transport
behaviors stay unchanged. This is a source-level optimization candidate:
**build and live RPS comparison are required before claiming a performance gain**.
There are no new LB controls. In **Web Server -> Edit service -> Delivery**,
`sendfile: off | auto` is an opt-in Linux `sendfile(2)` transport bridge for
full static GET responses of at least 64 KiB over plain HTTP/1.1. The already
validated file descriptor is sent directly to the TCP socket; cache-enabled,
compressed, ranged, transformed, TLS/H2/H3 and non-Linux requests retain the
existing streaming path. The default is `off`; toggling this transport option
does not purge HOT/COLD cache. **Native compilation and live protocol tests
remain pending; do not deploy this candidate without them.**
An offline cache-retention simulation for a 20-vhost workload shows 92.123%
fewer invalidated objects and 92.113% fewer cache misses than the old global
purge policy **under its stated synthetic assumptions**. These are not RPS
figures; real 0.34.0 performance remains unmeasured.
See `docs/TEST_REPORT_0.34.0.md` for verification scope and remaining gates.
## 0.33.8: request-path performance and compatibility verification