Servicio basado en la nube
Dynamo es un conjunto de técnicas que juntas pueden formar un sistema de almacenamiento estructurado de clave-valor de alta disponibilidad [1] o un almacén de datos distribuido . [1] Tiene propiedades tanto de bases de datos como de tablas hash distribuidas (DHT). Fue creado para ayudar a abordar algunos problemas de escalabilidad que Amazon experimentó durante la temporada navideña de 2004. [2] Para 2007, se utilizó en Amazon Web Services , como su Simple Storage Service (S3). [1]
Relación con DynamoDB
Amazon DynamoDB está "construido sobre los principios de Dynamo" [3] y es un servicio alojado dentro de la infraestructura de AWS. Sin embargo, mientras que Dynamo se basa en la replicación sin líder, DynamoDB utiliza la replicación con un solo líder. [4]
Principios
- Escalabilidad incremental: Dynamo debería poder escalar un host de almacenamiento (o “nodo”) a la vez, con un impacto mínimo tanto en los operadores del sistema como en el sistema en sí.
- Simetría: cada nodo en Dynamo debe tener el mismo conjunto de responsabilidades que sus pares; no debe haber ningún nodo distinguido o nodos que asuman roles especiales o un conjunto adicional de responsabilidades.
- Descentralización: una extensión de la simetría, el diseño debe favorecer las técnicas descentralizadas peer-to-peer por sobre el control centralizado.
- Heterogeneidad: El sistema debe poder aprovechar la heterogeneidad de la infraestructura en la que se ejecuta. Por ejemplo, la distribución del trabajo debe ser proporcional a las capacidades de los servidores individuales. Esto es esencial para agregar nuevos nodos con mayor capacidad sin tener que actualizar todos los hosts a la vez.
Técnicas
Implementaciones
Amazon publicó el artículo sobre Dynamo, pero nunca publicó su implementación. La capa de índice de Amazon S3 implementa y amplía muchas de las características principales de Dynamo. Desde entonces, se han creado varias implementaciones basadas en el artículo. El artículo también inspiró muchas otras implementaciones de bases de datos NoSQL , como Apache Cassandra , Project Voldemort y Riak . [2]
Véase también
Referencias
- ^ abc Decandia, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.; Sivasubramanian, S.; Vosshall, P.; Vogels, W. (2007). "Dynamo: el almacén de clave-valor de alta disponibilidad de Amazon". Actas del vigésimo primer simposio ACM SIGOPS sobre principios de sistemas operativos - SOSP '07 . p. 205. doi :10.1145/1294261.1294281. ISBN 9781595935915. Número de identificación del sujeto 221033483.
- ^ ab Amazon da otro paso hacia NoSQL con DynamoDB
- ^ Amazon DynamoDB: un servicio de base de datos NoSQL rápido y escalable diseñado para aplicaciones a escala de Internet
- ^ Kleppmann, Martin (2 de abril de 2017). Diseño de aplicaciones con uso intensivo de datos (1.ª ed.). O'Reilly Media. pág. 177. ISBN 978-1449373320Dynamo no está disponible para usuarios fuera de Amazon. Resulta confuso que AWS ofrezca un producto de base de datos alojada llamado DynamoDB, que utiliza
una arquitectura completamente diferente: se basa en la replicación de un solo líder.
Enlaces externos
- El dinamo de Amazon (2007)
- Amazon revela su almacenamiento distribuido: Dynamo (2007)