advanced
Sharding
Split data by key or range while planning routing, rebalancing, hot shards, cross-shard queries, and migrations. Назовите benefit, limit и operational cost.
Шардирование делит данные по shard key — hash user ID, tenant ID или регион. Повышает write throughput и ёмкость, но усложняет cross-shard запросы, транзакции, rebalancing и миграции схемы. Ключи без hot shard и в духе паттернов доступа.
План routing layer: логика приложения, proxy или клиент. Rebalancing — consistent hashing или dual-write. Celebrity-пользователи могут требовать выделенный shard или кеш.
На интервью: shard key для соцприложения, обход cross-shard запроса, rebalancing без downtime.
Типовые ошибки: монотонные ключи и hot spot; shard key меняется со временем; join across shard на горячем пути.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Shard key из паттернов доступа.
- Routing и discovery layer.
- Rebalancing и миграция.
- Mitigation hot shard и celebrity skew.