Cópias mantêm um banco de dados vivo — mas cada cópia ainda contém TODOS os dados. Então, o que acontece quando os dados em si não cabem em uma única máquina? Você os divide. É assim que funciona.
No Episódio 9 de The Tech Intern · Design de Sistema, continuamos exatamente de onde o Episódio 8 parou. O mesmo banco de dados de pedidos do Dabba — mas agora ele ultrapassou uma única caixa, e nenhum número de cópias resolve isso. Passamos o episódio fazendo-o CRESCER (sharding) e permanecer RÁPIDO (indexação), uma troca deliberada de cada vez.
Você sairá sabendo (cada termo explicado na primeira utilização, sem jargão solto):
✦ Particionamento — horizontal (por linhas) vs vertical (por colunas), com uma imagem de catálogo telefônico em dois balcões
✦ Sharding vs particionamento — a diferença que as pessoas tropeçam: sharding é particionamento horizontal em máquinas SEPARADAS ("particionamento divide os dados; sharding divide-os entre máquinas")
✦ Estratégias de sharding — intervalo vs hash (a bifurcação que decide tudo), além de diretório, geo, composto & funcional
✦ O problema do hot-shard / celebridade — por que uma linha viral derrete um único shard, e como resfriá-lo (coalescer, shard dedicado, sal, cache)
✦ Sharding real na prática — ID de 64 bits do Instagram (8.192 shards), Notion (480 shards, re-particionado sem tempo de inatividade), Discord (177→72 nós)
✦ Rebalanceamento — por que o ingênuo `hash(key) mod N` reorganiza ~67% das suas chaves para adicionar uma máquina
✦ Hashing consistente — o anel que move apenas ~1/N das chaves, e nós virtuais (Cassandra: 256/nó)
✦ Indexação — como uma B-tree transforma uma varredura de 23 SEGUNDOS em 2 MILISSEGUNDOS em 500M de linhas (~10.000× mais rápido), a troca entre leitura e escrita, e índices locais vs globais em um banco de dados sharded
Um exemplo em execução (o aplicativo de comida Dabba), números reais (todos obtidos), zero enrolação.
⏭ Próximo episódio: caching — porque a consulta mais rápida é aquela que você nunca envia.
━━━━━━━━━━━━━━━━━━━━
⏱ CAPÍTULOS
0:00 Por que cópias não são suficientes (recapitulação)
0:59 Particionamento — linhas vs colunas
1:53 Sharding vs particionamento: a verdadeira diferença
3:08 Estratégia de sharding: intervalo vs hash
4:50 Diretório, geo, composto & funcional
6:26 O problema do hot-shard
7:41 Sharding na prática (Instagram, Notion, Discord)
8:56 Rebalanceamento — a armadilha do mod-N
10:00 Hashing consistente — o anel
11:19 Indexação — uma linha em um bilhão
12:43 Índices não são gratuitos (tipos & trocas)
14:31 Recapitulação + o que vem a seguir
━━━━━━━━━━━━━━━━━━━━
🔔 Inscreva-se para o restante da série de Design de Sistema — estamos construindo um aplicativo desde "o que é um servidor" até projetar WhatsApp, UPI e Hotstar do zero.
#designsistema #bancodedados #sharding #indexação #backend #engenhariadesoftware