Hive Hive
Sign in

Faster, race-free Kura serve path with cached segment ring state

Metadata
Source
GitHub
Version
kura@0.10.4
Domains
Published
Jun 18, 2026 · 16:57 UTC
Repository
tuist/tuist
Update

Kura now caches the parsed segment ring state in memory instead of re-reading and JSON-parsing the full state on every serving-path request. With the ring sized from disk (up to ~300 segments on a 200 Gi volume, ceiling 16,384), each request previously paid for a full RocksDB load plus a full parse and scan; per-request generation lookups are now a hash lookup against the cached snapshot, with the index rebuilt only on rotation. The release also funnels all segment-state read-modify-write cycles (rotation and eviction) through a dedicated lock, eliminating a latent race that could resurrect an evicted segment or orphan a freshly rotated one and produce “Lost inputs” errors in Bazel builds served from Kura.