Skip to content

v1.8.0

Choose a tag to compare

@amankrx amankrx released this 21 Oct 14:38
· 60 commits to main since this release
0c4e6ef

A store reliability release, mostly for a CAS backed by an object store or Redis. Every store now checks that an upload delivered the bytes it declared before publishing the blob, and the Azure and Redis stores report an empty object already sitting under a non-empty digest as missing so the next write heals it. The existence cache writes every upload through, the compression store reports the digest size from has, a fast-slow store with a read-only slow tier counts its fast tier toward presence, and the Azure store discards the blocks a failed upload left staged. Redis reconnects for its length check after a failover and keeps its subscriptions across a reconnect, transport failures and interrupted uploads now surface as retryable Unavailable, and CompletenessCheckingStore reports a backend fault instead of a cache miss. Azure reads with no explicit length are no longer cut at the digest size, which undoes the v1.7.4 truncation of incompressible blobs through a compressed Azure tier.

The new features are opt-in: an adaptive read permit pool for object stores (max_concurrent_reads, Azure first), growing and jittered throttle waits in the retrier, a shared input fetch pool on the worker (max_concurrent_input_downloads, off at 0), read-only mounts for cached input directories on Linux workers, and allow_remove on CacheMetricsStore so a verify-store repair can evict a truncated entry from a disposable tier. Worth taking for any CAS on Azure, S3 or Redis; nothing changes in configuration unless you want the new pools.

What's Changed

⛰️ Features

🐛 Bug Fixes

📚 Documentation

🧪 Testing & CI

⬆️ Bumps & Version Updates

New Contributors

Full Changelog: v1.7.7...v1.8.0