GrabMd RiyadhProblem & solution
Evaluating performance impact of removing Redis-cache from a Scylla-backed service
Summary
A Rust service at Grab serves tens of thousands of peak QPS for batched count requests, using Scylla, Redis, and MySQL counter configurations. Its 15-minute cache-key truncation and five-minute TTL caused cache-hit declines and recurring Scylla QPS spikes at the end of each quarter-hour, when recent-data requests generated new keys. The experiment progressively disabled Redis, while a daily major compaction job was added to Scylla nodes; the service continued combining minutely, hourly, and daily tables for range calculations. With Redis fully decommissioned, Scylla cache hits rose from about 30% to 70% of reads, cache misses stayed about the same despite doubled traffic, peak CPU moved from roughly 50% to 52%, and overall service performance was maintained while eliminating a component responsible for about 25% of service cost.
Context
The service experienced periodic Scylla QPS spikes and declining Redis cache hit rates at the end of each 15-minute block. Recent-data requests became less likely to reuse keys from the preceding block, even while those keys remained within their five-minute TTL.
Approach / What changed
The experiment progressively disabled and ultimately decommissioned Redis, relying more heavily on Scylla’s own cache. A daily major compaction job was also added on all Scylla nodes, while the service’s existing range-calculation logic continued querying and summing minutely, hourly, and daily Scylla tables.
Takeaways
The 15-minute cache-key truncation created new keys for recent-data requests at 00, 15, 30, and 45 minutes past each hour, producing recurring cache-hit drops and Scylla QPS spikes.
After Redis was disabled, Scylla’s own cache served about 70% of reads versus about 30% before the experiment; Scylla cache misses remained about the same despite doubled Scylla traffic.
Peak Scylla CPU usage increased only from about 50% to 52%, while the removed Redis component had represented about 25% of the overall service cost.
Source and freshness
- Source
- engineering.grab.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.