🎉 75% of content is free forever — Unlock Premium from $10/mo →
CW
đŸ’ŧ Servicesâ„šī¸ Aboutâœ‰ī¸ ContactView Pricing Plansfrom $10

Data Partitioning

Data SystemsDistributed DatađŸŸĸ Free Lesson

Advertisement

Data Systems

Data Partitioning

When a single node cannot store or process all data, partitioning splits data across multiple nodes. The partitioning strategy determines how data is distributed and what queries are efficient.

  • Horizontal Partitioning — Splitting rows across nodes
  • Range Partitioning — Contiguous key ranges per partition
  • Hash Partitioning — Hash function determines partition

Partitioning is the key to scaling data storage and query throughput beyond a single machine.

Why Partition?

A single database has hard limits: disk space, CPU, memory, and I/O bandwidth. Partitioning (sharding) distributes data across multiple machines.

Horizontal vs Vertical Partitioning

StrategyDescriptionUse Case
VerticalSplit columns into different tables/databasesRarely used in modern systems
HorizontalSplit rows across multiple databasesStandard sharding approach

Vertical Partitioning

Splitting a table by columns into separate tables or databases.

Horizontal Partitioning

Splitting rows across multiple database instances.

Range Partitioning

Each partition owns a contiguous range of keys.

Partition 1Keys: A - F~25M rowsPartition 2Keys: G - M~25M rowsPartition 3Keys: N - Z~25M rowsHotspot: sequential writesRange PartitioningRange queries are efficient | Sequential writes create hotspots

Range Partitioning Trade-offs

Hash Partitioning

A hash function determines which partition owns a key.

Consistent Hashing

When N changes, naive hash partitioning remaps all keys. Consistent hashing minimizes key movement.

Partition Key Selection

The partition key determines data distribution and query efficiency.

Rebalancing

When partitions become uneven or nodes are added/removed, data must be rebalanced.

Cross-Partition Queries

Queries spanning multiple partitions are inherently more expensive.

Scatter-Gather

A query that touches all partitions must scatter (send to all) and gather (combine results).

Partitioning in Practice

SystemPartitioning StrategyNotes
MySQL (Vitess)Hash or rangeConfigurable per table
MongoDBHash or rangeAuto-balancing
CassandraHash (consistent)Virtual nodes for balance
DynamoDBHash (consistent)Automatic partition management
CockroachDBRangeAutomatic split/merge

Practice Exercises

  1. Design: Design a partitioning strategy for a ride-sharing app with 100M rides/day. Queries: rides by user, rides by city, rides by time range. What partition key supports the most common query?

  2. Analysis: Compare range and hash partitioning for an e-commerce order system where 80% of queries are "my orders" (by user_id) and 20% are "all orders today" (by timestamp).

  3. Rebalancing: A system has 4 partitions. Adding a 5th node with consistent hashing moves ~20% of keys. With fixed partitioning and 16 partitions, how many partitions move?

  4. Hotspot Mitigation: A time-series database receives 1M writes/second, all with current timestamps. Design a partitioning strategy that avoids hotspots while maintaining time-range query efficiency.


What to Learn Next

-> Consistent Hashing Hash rings, virtual nodes, and minimal key redistribution.

-> Data Replication Leader-follower, multi-leader, and conflict resolution.

-> Databases SQL vs NoSQL, indexing, replication, and sharding.

-> Database Indexing B-trees, LSM trees, and query optimization.

-> CAP Theorem Consistency models, availability, and partition tolerance.

-> Scalability Fundamentals Vertical vs horizontal scaling, load balancing, and capacity planning.

Need Expert System Design Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement