What is DATABASE SHARDING?

Gaurav Sen August 7, 2018
Video Thumbnail
Gaurav Sen Logo

Gaurav Sen

@gkcs

About

This channel is for software developers who want to learn artificial intelligence, system design, and algorithms. You will find content around LLMs, data structures, algorithms, game-playing AI, and system design.

Video Description

Sharding a database is a common scalability strategy for designing server-side systems. The server-side system architecture uses concepts like sharding to make systems more scalable, reliable, and performant. Sharding is the horizontal partitioning of data according to a shard key. This shard key determines which database the entry to be persisted is sent to. Some common strategies for this are reverse proxies. Database interviews ask for concepts like sharding to make databases more performant and available. This makes horizontal partitioning a logical choice. Looking to ace your next interview? Try this System Design video course! 🔥 https://interviewready.io 00:00 Introduction 00:52 Sharding - The problem 01:59 Horizontal Partitioning 03:20 Considerations 04:30 Potential Drawbacks 08:46 A challenge! Video lectures, architecture diagrams, capacity planning, API contracts, and evaluation tests. It's a complete package. Horizontal vs. Vertical partitioning: https://stackoverflow.com/questions/18302773/what-are-horizontal-and-vertical-partitions-in-database-and-what-is-the-differen Consistent Hashing: https://en.wikipedia.org/wiki/Consistent_hashing https://www.youtube.com/watch?v=zaRkONvyGr8 Sources: https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6 https://medium.com/@jeeyoungk/why-i-love-databases-1d4cc433685f https://www.quora.com/What-is-the-difference-between-consistent-hashing-and-sharding-in-a-distributed-system https://en.wikipedia.org/wiki/Partition_(database) Designing Data-Intensive Applications - https://amzn.to/2yQIrxH #database #sharding #systemdesign