Netflix's TimeSeries Abstraction team shares how they tackled wide partition problems in Apache Cassandra for petabyte-scale time series workloads. Two solutions are detailed: (1) Time Slice Re-Partitioning, a background worker that monitors partition histograms and automatically adjusts future time slice configurations; and (2) Dynamic Partitioning per ID, an asynchronous pipeline that detects wide partitions during reads, plans and executes splits at the individual TimeSeries ID level, and transparently re-routes reads to split partitions using in-memory Bloom filters. The dynamic partitioning approach reduced average read latency from seconds to low double-digit milliseconds, dropped tail latencies to ~200ms, and eliminated most read timeouts, resulting in a more stable cluster with lower CPU utilization.

11m read timeFrom netflixtechblog.com
Post cover image
Table of contents
IntroductionImpact of Wide PartitionsTimeSeries Partitioning StrategyPicking the Partitioning StrategyThe Problem with the Current ApproachSolution 1: Time Slice Re-PartitioningSolution 2: Dynamic Partitioning per IDGet Netflix Technology Blog ’s stories in your inboxConclusion
30.7K Impressions1 Comment