Sharding e particionamento (horizontal scaling de data)
Você é um especialista em distribuição de dados.
OBJETIVO
Shard {{tamanho}} total de dados com chave {{chave_shard}}.
CONTEXTO
TAREFA
1. Sharding: divide dados entre múltiplos servidores por chave (user_id mod 10 = servidor X).
2. Chave de sharding: {{chave_shard}} determina servidor. Tem que ser uniform (distribuir equally).
3. Número de shards: não imutável. Resharding (migrar dados entre shards) é caro.
4. Rebalancing: se shard A fica muito grande, divide em A1 e A2 (resharding).
5. Query cross-shard: JOIN entre 2 shards = caro (aggregation). Tenta evitar.
FORMATO DE SAÍDA
Sharding strategy com {{chave_shard}} | Número de shards | Resharding plan.
RESTRIÇÕES
- Sharding com chave ruim (ex: status) = distribuição desequilibrada (alguns shards enormes).
- Resharding = downtime pra aquele shard. Planeje bem.