TimeSeries Tiered Storage Journey: Kafka/Flink Streams to Native Cassandra Cold Reads
Netflix moved older data in its multi-petabyte TimeSeries Abstraction out of hot Cassandra storage in two steps. First, Kafka and Flink streamed events to S3 as Parquet files, which a daily job compacted into small, time-sorted row groups with Bloom filters cached in EVCache (p50 ~150 ms, p99 ~500 ms). The second design skips that streaming pipeline: a ReadOnlyCompactionStrategy aligns immutable SSTables to token ranges, and a custom pluggable Memtable (Cassandra 4.1) reads directly from existing Cassandra backups in S3. It now holds over 15 PB of compressed cold data, cut disk usage on affected clusters from 80% to 7%, and improved p90 latency by ~30%.
- Published
- 2026-10-14
- Scale
- 15+ PB compressed data in cold storage, disk usage cut from 80% to 7%, cold-read p99 under ~500 ms, thousands of cold reads/sec per region
- Techniques
- tiered storage compaction cost optimization backups as cold tier
- Stack
- Cassandra Kafka Flink Amazon S3 Parquet EVCache