Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 17:36

Репликация и шардинг

medium

Как проектировать репликацию и шардирование: topologies, read/write path, rebalancing, hot shards, consistency и операционные trade-offs.

Репликацию и шардинг легко спутать именно потому, что обе техники выглядят как "масштабирование данных", хотя цена ошибок у них разная.

Глава разводит read scale и availability с одной стороны и write scale с другой, показывая, когда хватает primary-replica, когда приходится платить за multi-primary или leaderless topology, как выбирать shard key и почему re-sharding почти всегда оказывается дорогим проектом.

На design review этот материал особенно полезен тем, что помогает обсуждать lag, failover, hot shards, rebalancing cost и эволюцию access patterns как часть одного решения, а не как набор отдельных infrastructure-трюков.

Практическая польза главы

Граница данных

Определяйте стратегию partition key по access-паттернам, чтобы минимизировать hot shards и expensive cross-shard операции.

Режим репликации

Выбирайте sync/async репликацию на основе RPO/RTO и требований к read-your-writes в ключевых сценариях.

Ребаланс без боли

Планируйте re-sharding и миграции как обычную операцию: dual writes, backfill и контролируемое переключение трафика.

Interview rigor

На интервью объясняйте, где решение упрется в пределы и как будете эволюционировать схему при росте x10.

Контекст

Принципы проектирования масштабируемых систем

Эта глава детализирует одну из ключевых тем масштабирования: replication + sharding.

Открыть главу

Репликация и шардинг отвечают за масштаб, доступность и стоимость данных. Репликация увеличивает устойчивость и масштаб чтения, шардинг увеличивает пропускную способность записи и общий capacity. Ошибка здесь обычно проявляется не на старте, а при росте нагрузки и product complexity.

Модели репликации

Primary-Replica

Один write-leader, несколько read-replicas. Хорошо для read-heavy нагрузок и понятного операционного управления.

Replica lag и асимметрия чтение/запись; failover должен быть автоматизирован и протестирован.

Multi-Primary

Запись в нескольких регионах/нодах, ниже latency для geo-distributed writes.

Конфликты и сложная merge-логика; высокий порог сложности для команд и платформы.

Leaderless

Кворумная запись/чтение и высокая доступность для distributed KV/NoSQL сценариев.

Сложнее reasoning о консистентности, read repair, hinted handoff и tombstones.

Визуализация репликаций

Replication Simulator

Request Queue

TX-401WRITE
user:42 · web
TX-402READ
user:42 · mobile
TX-403WRITE
tenant:acme · partner
TX-404READ
order:981 · web

Replication Router

Primary-Replica

Write в leader, read с replicas. Классический read-scaling.

Primary

write leader
reads: 0
writes: 0
lag: 0ms

Replica A

read replica
reads: 0
writes: 0
lag: 8ms

Replica B

read replica
reads: 0
writes: 0
lag: 11ms
Готово

Готово к симуляции. Запусти авто-режим или сделай один шаг.

Последнее решение: —

Модели шардирования

  • Hash-based sharding: равномерное распределение, но сложнее range-запросы.
  • Range-based sharding: эффективно для диапазонных запросов, но есть риск hot ranges.
  • Directory-based sharding: гибкое управление расположением данных, требует надежного metadata service.
  • Geo/tenant sharding: удобно для data sovereignty и изоляции клиентов, но усложняет cross-tenant операции.

Визуализация шардинга

Sharding Simulator

Shard Keys Queue

Q-901acme
user:42 · id=1200
Q-902globex
order:981 · id=3520
Q-903initech
invoice:77 · id=6710
Q-904umbrella
cart:55 · id=2200

Shard Router

Hash Sharding

Ключ хэшируется в shard ring для равномерного распределения.

Shard 0

hash bucket 0
requests: 0hotness: 0

Shard 1

hash bucket 1
requests: 0hotness: 0

Shard 2

hash bucket 2
requests: 0hotness: 0
Готово

Готово к симуляции. Запусти авто-режим или сделай один шаг.

Последнее решение: —

Related

Performance Engineering

Hot shards и migration-window напрямую влияют на p95/p99 latency.

Открыть главу

Ребалинсировка шардов и контроль горячих шардов

Consistent hashing и virtual nodes для снижения объема миграций при изменении количества узлов.

Hot shard mitigation: adaptive partitioning, write buffering, routing по workload key, temporal split.

Backfill и миграции запускайте через throttled pipelines с верификацией checksums.

Все migration-операции должны иметь pause/resume, rollback plan и observable progress.

Cloud Native

Cost Optimization & FinOps

Replication topology и rebalancing напрямую влияют на cloud cost и unit economics.

Открыть главу

Практический чеклист

Определены RPO/RTO по каждому классу данных и сценариям отказа.

Явно задано, какие операции требуют strong consistency, а какие допускают eventual.

Есть план эволюции shard key при росте продукта и изменении access patterns.

Репликация, failover и rebalancing проверяются регулярно через game days.

Стоимость cross-zone/cross-region replication учтена в FinOps-модели.

Частый anti-pattern: выбирать shard key под текущий feature set без плана эволюции.

References

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки