Tiered storage at scale: 4 real case studies (Netflix, Dropbox, Postgres)
Tiered storage keeps recent, frequently read data on fast storage and moves older, rarely read data to a cheaper tier while keeping it readable. In the write-ups we track, Netflix moved older TimeSeries data out of hot Cassandra storage, first by streaming events through Kafka and Flink to Parquet files on S3, then by reading directly from existing Cassandra backups in S3. It now holds over 15 PB of compressed cold data and cut disk usage on affected clusters from 80% to 7%. Dropbox added a cold tier to Magic Pocket that cuts replication overhead for rarely read data. On PostgreSQL, Timescale used tiered storage together with hypertables and columnar compression to keep a 350 TB+ dataset queryable.
4 of the 94 engineering write-ups in our database are tagged with the technique "tiered storage". They come from 4 companies (Cloudflare, Dropbox, Netflix and Tiger Data (Timescale)) and were published between 2019 and 2026. 3 of the 4 state concrete scale numbers, for example "R2 p99 time to first byte roughly halved (hits and misses)" (Cloudflare). Each card below links to our short summary and the original post.
Tiered storage in each story
Netflix (2026): a ReadOnlyCompactionStrategy aligns immutable SSTables to token ranges, and a custom pluggable Memtable (Cassandra 4.1) serves cold reads from backups in S3, with cold-read p99 under about 500 ms. Dropbox (2019): a cold tier for Magic Pocket, its own block store, using erasure coding for rarely read data. Timescale (2023): tiered storage in its Postgres extension, on a dataset growing by 10 billion records a day. Cloudflare (2026): its story is about Tiered Cache, not a database; moving range requests to its Pingora-based cache cut tiered cache traffic for R2 by about 6% week over week.
Origin Range Requests: Serving large files without range-request tuning
Cloudflare's old range-request caching sliced files into a per-zone configured range size, so a small video seek could pull 128 MiB from origin for R2, while small ranges caused floods of tiny origin requests and memory pressure, and concurrent requests in the same range blocked each other. Moving from nginx to its Pingora-based cache, it reused Pingora's fixed-size on-disk chunks as the unit: a coordinator serves cached bytes, attaches to in-flight downloads, fetches only missing chunk-aligned ranges from origin, and validates size and ETag before composing one 206 response. For R2, p99 time to first byte dropped by about half, and letting one response combine disk and upstream bytes cut tiered cache traffic about 6% week over week.
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%.
How We Scaled PostgreSQL to 350 TB+
Timescale dogfooded its own Postgres extension to build a database-observability product, using hypertables, columnar compression and tiered storage to keep a 350 TB+ dataset queryable.
How we optimized Magic Pocket for cold storage
Dropbox added a cold tier to Magic Pocket that cuts replication overhead for rarely read data.
FAQ
What is tiered storage?
Tiered storage splits data by how often it is read: hot, recent data stays on fast storage, and older, rarely read data moves to a cheaper tier, such as object storage, while staying readable. Netflix, Dropbox and Timescale all describe doing this in the write-ups we track.
Does PostgreSQL support tiered storage?
In our database, Timescale's post describes using tiered storage, along with hypertables and columnar compression, in its own Postgres extension to keep a 350 TB+ dataset (10 billion new records a day) queryable.
How does Netflix use tiered storage with Cassandra?
Netflix's 2026 post describes moving older TimeSeries data out of hot Cassandra storage, ending with a design that reads directly from Cassandra backups in S3. It holds over 15 PB of compressed cold data and cut disk usage on affected clusters from 80% to 7%.
How did Dropbox build cold storage?
Dropbox's 2019 post describes a cold tier for Magic Pocket that uses erasure coding to cut replication overhead for rarely read data.