Sharding
Last updated
What is Sharding?
Sharding is a technique used to horizontally partition a large data set across multiple servers, in order to improve the performance, scalability, and availability of a system. This is done by breaking the data set into smaller chunks, called shards, and distributing the shards across multiple servers. Each shard is self-contained and can be managed and scaled independently of the other shards. Sharding can be used in scenarios like scalability, availability, and geo-distribution. Sharding can be implemented using several different algorithms such as range-based sharding, hash-based sharding, and directory-based sharding.
Free resources to learn Sharding
More in stage 23: Reliability Patterns
- Reliability Patterns
- Strangler Fig
- Sidecar
- Static Content Hosting
- Leader Election
- CQRS
- Pipes & Filters
- Ambassador
- Gateway Routing
- Gateway Offloading
- Gateway Aggregation
- External Config Store
- Compute Resource Consolidation
- Backends for Frontend
- Anti-Corruption Layer
- Valet Key
- Sequential Convoy
- Static Content Hosting
- Scheduling Agent Supervisor
- Queue-Based Load Leveling
- Materialized View
- Publisher/Subscriber
- Index Table
- Priority Queue
- Event Sourcing
- Pipes and Filters
- CQRS
- Competing Consumers
- Cache-Aside
- Choreography
- Claim Check
- Async Request Reply
Sharding: common questions
Can I learn Sharding in Hindi?
This lesson is written in English. Once you sign in, open it in the interactive course and ask the AI tutor to explain Sharding in Hindi or Hinglish. The tutor answers from this lesson’s own text, so it stays on the syllabus, and it runs on your own Google, OpenAI or Anthropic key.
Is this Sharding tutorial for beginners?
It is lesson 109 of 147 in the free System Design roadmap, in stage 23, Reliability Patterns. If you are new to System Design, start from stage 1 and come back here in order; if you already know the earlier stages, this lesson stands on its own.