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.
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 inboxConclusion30.7K Impressions1 Comment