Dynamo: Amazon's Highly Available Key-value Store — DeCandia et al. (2007)
Dynamo: El almacén de clave-valor altamente disponible de Amazon — DeCandia et al. (2007)
Disponibilidad sobre todo
Amazon aprendió de la peor manera que en e-commerce, un carrito de compras inaccesible cuesta millones de dólares por hora. Dynamo nació de esa premisa: construir un almacén clave-valor que siempre esté disponible para escritura, incluso durante particiones de red o fallos de nodos. Para lograrlo, Amazon hizo un trade-off radical — relajar la consistencia en favor de la disponibilidad, apostando por la consistencia eventual.
Las técnicas que Dynamo combinó se convirtieron en vocabulario estándar de la industria:
- Consistent hashing para particionar datos sin coordinación central
- Vector clocks para detectar y resolver conflictos entre réplicas
- Sloppy quorum y hinted handoff para mantener escrituras durante fallos
- Merkle trees para sincronización eficiente de réplicas
El impacto del paper trasciende a Amazon. Dynamo inspiró directamente a Cassandra (Facebook), Riak, Voldemort (LinkedIn) y toda la ola NoSQL de 2008-2015. También popularizó el teorema CAP como herramienta de diseño: si no podés tener consistencia, disponibilidad y tolerancia a particiones al mismo tiempo, al menos elegí conscientemente cuál sacrificar. Hoy DynamoDB, la versión gestionada en AWS, es uno de los servicios más usados del mundo.
Newsletter
Si llegaste hasta acá, sabés que esto vale la pena.
Un email por paper. Sin resúmenes semanales ni contenido de relleno.
También en Magacín
El sistema de archivos de Google — Ghemawat, Gobioff & Leung (2003)
El sistema de archivos que hizo posible indexar internet. Diseñado para fallar: asume que los discos se rompen y sigue funcionando.
En busca de un algoritmo de consenso comprensible — Ongaro & Ousterhout (2014)
Raft: el algoritmo de consenso diseñado para ser entendido. Una alternativa a Paxos que se convirtió en el estándar de facto para sistemas distribuidos modernos.
MapReduce: Procesamiento de datos simplificado en grandes clústeres — Dean & Ghemawat (2004)
El paper de Google que definió cómo procesar datos a escala. Veinte años después, su modelo mental sigue siendo la base de todo sistema distribuido.