Netflix

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

See also

The best scaling write-ups, weekly

One email a week. No spam.

Subscribe