Hot Partition
Also known as: hot key, hot shard, partition skew
A hot partition is a single shard receiving a disproportionate share of traffic, so it saturates while the rest of the cluster idles. Because throughput is bounded by the busiest partition, not the average, a well-provisioned cluster can throttle at a fraction of its nominal capacity.
Last reviewed · Part of the Architecture Glossary
In practice
Hot partitions come from partition keys that mirror real-world skew:
| Partition key | Failure |
|---|---|
tenant_id in multi-tenant SaaS | The largest customer is 40% of the traffic |
date on a time-series table | Today's partition takes 100% of the writes |
status = 'PENDING' | The whole queue lives in one value |
Monotonic id or timestamp | All inserts land at the end of the keyspace |
Remedies, cheapest first:
- Add entropy to the key.
tenant_id#bucketwherebucket = hash(record_id) % 16, then scatter-gather on read. Trades read fan-out for write spread. - Cache the hot key in front of the store, so the read amplification never reaches the partition.
- Isolate it. Give the whale tenant its own shard. Cleaner than pretending the distribution is uniform when it never was.
When it matters
DynamoDB, Cassandra, Kafka (partition = ordering unit), sharded Postgres, and any multi-tenant system with a power-law customer distribution.
Common mistake
Capacity-planning against average per-partition throughput. If one partition takes 30% of the traffic on a 10-shard cluster, you cannot use more than about a third of the cluster's rated capacity — provision for the hot one and design the key to flatten it.
See also
- ShardingSharding splits a dataset across independent database instances by a partition key, so each shard holds a disjoint subset.
- Consistent HashingConsistent hashing maps keys and nodes onto the same circular hash space, assigning each key to the next node clockwise.
- Cache StampedeA cache stampede occurs when a popular cache entry expires and every concurrent request for it misses simultaneously, sending the full uncached load to the origin at once.