# Evaluating performance impact of removing Redis-cache from a Scylla-backed service

[Grab](https://yomu.fyi/company/grab) · Md Riyadh · Apr 11, 2025

## Summary

Grab operates a high-throughput Rust read service that aggregates counter metrics from Scylla tables across minutely, hourly, and daily granularities. The service initially cached aggregated responses in Redis using keys rounded to 15-minute intervals alongside a five-minute TTL. Because incoming queries predominantly requested recent data, transitions between 15-minute windows caused simultaneous cache misses across active configurations, resulting in severe Scylla traffic spikes, latency surges, and timeouts. To resolve the load imbalance, engineers proposed removing the Redis cache entirely and relying directly on Scylla's native internal caching. The rollout was staged in production by deterministically disabling Redis caching for specific counter configurations using mathematical operations on configuration IDs.

## Takeaways

- Rounding cache keys to fixed 15-minute intervals caused synchronized cache misses and database query spikes because traffic predominantly requested recent data.
- Staggered five-minute TTL expirations did not cause query spikes because key invalidations occurred continuously rather than simultaneously at window boundaries.
- The engineering team bypassed random percentage-based feature rollouts, using mathematical operators on configuration IDs to deterministically disable caching per configuration.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Caching](https://yomu.fyi/topic/caching), [Performance](https://yomu.fyi/topic/performance), [Redis](https://yomu.fyi/topic/redis), [Rust](https://yomu.fyi/topic/rust)

[Read original post](https://engineering.grab.com/evaluate-performance-remove-redis-from-scylla-service)
