|
| 1 | +# Fluxheim 1.2.2 Release Notes |
| 2 | + |
| 3 | +## Release Metadata |
| 4 | + |
| 5 | +- Version: `1.2.2` |
| 6 | +- Release date: 2026-05-13 |
| 7 | +- Git tag: `v1.2.2` |
| 8 | +- Release type: focused storage-bin cache follow-up |
| 9 | + |
| 10 | +## Summary |
| 11 | + |
| 12 | +Fluxheim `1.2.2` adds the focused slab/bin-style disk cache backend planned |
| 13 | +after `1.2.1`. The existing filesystem disk cache remains the portable default, |
| 14 | +while operators can opt into `cache.disk.backend = "storage-bin"` for large, |
| 15 | +high-churn cache workloads that should avoid one-file-per-object storage. |
| 16 | + |
| 17 | +## Highlights |
| 18 | + |
| 19 | +- Added `cache.disk.backend = "storage-bin"` runtime selection while keeping |
| 20 | + the existing filesystem backend as the default. |
| 21 | +- Added the storage-bin disk cache backend with manifest files, deterministic |
| 22 | + bin files, durable object index recovery, reusable free ranges, and LRU |
| 23 | + eviction parity. |
| 24 | +- Added management parity for storage-bin cache stats, activity reset, exact |
| 25 | + purge, indexed hard/soft purge, stale purge, cache lookup, and cache warm |
| 26 | + workflows. |
| 27 | +- Debounced durable storage-bin index writes after insert, eviction, and purge |
| 28 | + bursts to reduce write amplification under high-cardinality cache fills. |
| 29 | +- Added clean shutdown flushing for pending storage-bin index updates. |
| 30 | +- Added same-key rewrite handling so revalidation or object replacement can |
| 31 | + release and reuse the previous range. |
| 32 | +- Added conservative tail-bin reclamation so eviction and purge can remove |
| 33 | + fully-free highest-numbered bin files without moving live objects. |
| 34 | +- Exposed storage-bin pressure stats through admin JSON and Prometheus gauges, |
| 35 | + including allocated bin bytes, reusable free bytes, free range count, largest |
| 36 | + free range, and bin file count. |
| 37 | +- Added `examples/cache-storage-bin.toml` plus CI and smoke coverage for the |
| 38 | + storage-bin backend. |
| 39 | + |
| 40 | +## Validated Scope |
| 41 | + |
| 42 | +- Local gate passed before release prep: |
| 43 | + - `cargo test -q storage_bin --lib` |
| 44 | + - focused storage-bin rewrite, drop-flush, and tail-reclaim tests |
| 45 | + - `cargo check --features profile-observability,acme-client` |
| 46 | + - `cargo check --no-default-features --features proxy,web,cache,tls-rustls,security` |
| 47 | + - `cargo clippy --features profile-observability,acme-client --all-targets -- -D warnings` |
| 48 | + - `sh scripts/smoke_storage_bin_cache.sh` |
| 49 | + - `cargo run --quiet -- --check-config --config examples/cache-storage-bin.toml` |
| 50 | + - `perl scripts/check-doc-links.pl` |
| 51 | + - `scripts/validate-release-metadata.sh` |
| 52 | + - `git diff --check` |
| 53 | + |
| 54 | +## Known Limits |
| 55 | + |
| 56 | +- The storage-bin backend is opt-in in `1.2.2`; the filesystem backend remains |
| 57 | + the default until production testing proves the bin format across more |
| 58 | + deployment shapes. |
| 59 | +- Storage-bin compaction is conservative and only reclaims fully-free tail |
| 60 | + bins. Moving live objects between bins is reserved for a later compaction |
| 61 | + pass if production data shows it is needed. |
| 62 | +- Partial streaming admission and range-slice fill remain future cache work. |
| 63 | +- Optional cache encryption at rest, including local-key and OpenBao |
| 64 | + Transit/KMS key providers, is planned for `1.2.3`. |
| 65 | +- Distributed cache metadata and peer-fill are planned for `1.2.4`. |
| 66 | +- Wasm-based extension points, including cache-rule hooks comparable to VCL/Lua |
| 67 | + style customization, are planned for `1.4`. |
| 68 | + |
| 69 | +## Checksums And Signatures |
| 70 | + |
| 71 | +Record during the release: |
| 72 | + |
| 73 | +- Commit: `v1.2.2` tag target |
| 74 | +- Local gate: GitHub CI green before tag; local release metadata checks passed |
| 75 | +- CodeQL/code scanning: no open release-blocking alerts before tag |
| 76 | +- Source archive checksums: to be filled |
| 77 | +- Binary checksums: to be filled |
| 78 | +- SBOM checksums: to be filled |
| 79 | +- Reproducible build: to be filled |
| 80 | +- Container digests: to be filled |
| 81 | +- Tag signature: to be filled |
0 commit comments