Las copias mantienen viva una base de datos, pero cada copia aún contiene TODOS los datos. Entonces, ¿qué sucede cuando los datos en sí no caben en una sola máquina? Los divides. Así es como se hace.
En el Episodio 9 de The Tech Intern · Diseño de Sistemas, continuamos justo donde el Episodio 8 lo dejó. La misma base de datos de pedidos de Dabba, pero ahora ha superado una sola caja, y ningún número de copias soluciona eso. Pasamos el episodio haciendo que CREZCA (sharding) y se mantenga RÁPIDO (indexación), un compromiso deliberado a la vez.
Saldrás sabiendo (cada término explicado en su primer uso, sin jerga colgando):
✦ Particionamiento — horizontal (por filas) vs vertical (por columnas), con una imagen de un directorio en dos mostradores
✦ Sharding vs particionamiento — la diferencia que la gente confunde: sharding es particionamiento horizontal en máquinas SEPARADAS ("el particionamiento divide los datos; el sharding los divide entre máquinas")
✦ Estrategias de sharding — rango vs hash (el tenedor que decide todo), además de directorio, geo, compuesto y funcional
✦ El problema del hot-shard / celebridad — por qué una fila viral derrite un solo shard, y cómo enfriarlo (coalescer, shard dedicado, sal, caché)
✦ Sharding real en el mundo — ID de 64 bits de Instagram (8,192 shards), Notion (480 shards, re-sharded sin tiempo de inactividad), Discord (177→72 nodos)
✦ Rebalanceo — por qué el ingenuo `hash(key) mod N` reorganiza ~67% de tus claves para agregar una máquina
✦ Hashing consistente — el anillo que mueve solo ~1/N de claves, y nodos virtuales (Cassandra: 256/nodo)
✦ Indexación — cómo un B-tree convierte un escaneo de 23 SEGUNDOS en 2 MILISEGUNDOS en 500M de filas (~10,000× más rápido), el compromiso de lectura vs escritura, y los índices locales vs globales en una base de datos shardada
Un ejemplo en funcionamiento (la app de comida Dabba), números reales (todos obtenidos), cero palabrería.
⏭ Próximo episodio: caché — porque la consulta más rápida es la que nunca envías.
━━━━━━━━━━━━━━━━━━━━
⏱ CAPÍTULOS
0:00 Por qué las copias no son suficientes (resumen)
0:59 Particionamiento — filas vs columnas
1:53 Sharding vs particionamiento: la verdadera diferencia
3:08 Estrategia de sharding: rango vs hash
4:50 Directorio, geo, compuesto y funcional
6:26 El problema del hot-shard
7:41 Sharding en el mundo (Instagram, Notion, Discord)
8:56 Rebalanceo — la trampa del mod-N
10:00 Hashing consistente — el anillo
11:19 Indexación — una fila en mil millones
12:43 Los índices no son gratis (tipos y compromisos)
14:31 Resumen + qué sigue
━━━━━━━━━━━━━━━━━━━━
🔔 Suscríbete para el resto de la serie de Diseño de Sistemas — estamos construyendo una app desde "¿qué es un servidor?" hasta diseñar WhatsApp, UPI y Hotstar desde cero.
#diseñodesistemas #basesdedatos #sharding #indexación #backend #ingenieríadesoftware