SlideShare ist ein Scribd-Unternehmen logo
1 von 33
DynamoDB
José A. San Miguel Carrillo
Javier de la Rosa Fernández
Alexandra Conde Hermo
Manuel Bazaga
Carmen Alonso Martínez
Introducción
● Requisitos operativos en términos de:
rendimiento, fiabilidad y eficiencia.
● Altamente escalable.
● Almacenamiento siempre disponibles
(Amazon S3)
● Acceso con primary-key
Introducción
● Data es particionada y replicada usando
hashing consistente y object versioning
(consistencia: técnica de quórum similar y
un protocolo de sincronización de réplica
descentralizado)
● Almacenamiento eventualmente consistente
Trasfondo
¿Qué es?
BD no relacional Uso de recursos eficiente
Interfaz (k,v) Escalable
Alta disponibilidad
¿Para quién?
● Para Amazon
● Para aquellos con problemas similares:
o No requieren querys ni manejo complejo
o Prefieren disponibilidad sobre consistencia
Requisitos
Query Model:
R/W simple. Objetos identificados por clave única
Las operaciones no afectan a más de un objeto
Objetos<1MB
ACID:
Sacrifica consistencia por disponibilidad.
No garantiza aislamiento y permite sólo
actualizaciones por clave única
Eficiencia:
Sacrifica rendimiento, disponibilidad y eficiencia
en coste para alcanzar latencias muy bajas y
consistentes.
Supuestos
“Dynamo sólo es usado
por Amazon”
● Se asume un ambiente no
hostil.
● No se tienen en cuenta
requisitos de seguridad.
● El primer dimensionamiento
se hace acorde a las
necesidades de Amazon.
SLA - service level agreement
● Medido en el percentil 99.9, no en la media.
● tr,tw<300ms
● Enfocado a mejorar la experiencia de todos
los usuarios, no de la mayoría.
Consideraciones del diseño
Eventualmente consistente - las actualizaciones llegan a
las réplicas eventualmente… ¿cuándo? ¿R/W?
Siempre podremos escribir.
Otros principios del diseño
Escalabilidad
Simetría
Descentralización
Heterogeneidad
Trabajo relacionado
Peer to Peer Systems
Freenet y Gnutella
Structured P2P Networks (Pastry y Chord) DHT
Oceanstore y PAST (Sistemas de almacenamiento)
Trabajo relacionado
Distributed File Systems and Databases
Ficus y Coda
Farsite - NFS (Network File System)
Google File System
GFS (Global Forecast System)
Trabajo relacionado
Distributed File Systems and Databases
Bayou
Antiquity (Byzantine para asegurar consistencia)
Big Table
Trabajo relacionado
Discusión
● Always writeable.
● Infraestructura dentro de un dominio administrativo
único.
● No requieren soporte para espacios de nombres
jerárquicos
● Se construye para aplicaciones sensibles a la latencia
Arquitectura
● Interfaz
● Particionado
● Alta disponibilidad en Escrituras
● Gestion de fallos
● Detección y recuperación ante fallos
Interfaz
● Almacenamiento <clave,valor>
● Operaciones:
o get(key): Devuelve un objeto (o una lista) de objetos (incluidos
los conflictos)
o put(key,context,object): Localiza donde escribir un objeto (y
sus réplicas) a partir de una clave
 Context contiene metainformación tal como versionado,
validaciones, etc.
● Se generan identificadores de 128-bits aplicando
MD5 a las claves
Particionado
● Diseñado para un escalado incremental mediante nodos
● Esquema de particionado distribuido mediante “Consistent
hashing”
o Claves distribuidas en estructura de anillo en varios nodos
o Cada nodo es responsable de gestionar un rango de claves
o Nodos virtuales para gestionar la carga y repartición de las claves
● Cada nodo acepta una carga equivalente a las de sus
vecinos.
Replicacion
● Cada clave (k) es asignada a un coordinador (i)
● Cada valor (v) se replica en los nodos (lógicos) (N-
1) segun el sentido horario
● El coordinador (i) es responsable de actualizar el
resto de nodos para las claves que posee.
● Cada clave (k) sabe los nodos físicos responsables
de mantener y acceder a los valores.
Replicacion
Versionado
● Consistencia Eventual
● Los datos son actualizados de forma asincrona
o put() se devuelve el dato antes de actualizar todas
las replicas
o get() puede devolver versiones (no actualizadas) del
mismo valor
● “Siempre escribe”
o Carrito de la compra
● “Vector de tiempo” para el versionado
http://cloudacademy.com/blog/data-versioning-with-dynamodb-an-inside-look-into-nosql-part-5/
http://www.slideshare.net/advaitdeo/dynamodb-presentation-
31000206
Resolución de conflictos
● Sintáctica (interna)
o Resolucion automatica
● Semántica (cliente)
o Es el cliente quien decide cómo resolver el conflicto
o Ejemplo: Carrito de la compra
 Siempre se mantienen los items añadidos
 Pueden “volver a aparecer” elementos borrados
http://www.slideshare.net/advaitdeo/dynamodb-presentation-
31000206
put() & get()
● 2 estrategias para seleccionar un nodo
o En función de la carga (Generic load-balancer)
o Partition aware client-library
● Operaciones de lectura y escritura a través de un nodo Coordinador
● Quorum como protocolo de consistencia
o Operación de escritura se realizará en (N/2) +1 nodos
● Para mantener la consistencia se utilizan 3 variables
o N – Numero de nodos
o W – Número de nodos para escribir
o R – Número de nodos para leer
put()
● Ante una escritura, el coordinador genera el Vector de
tiempo y escribe localmente
● El coordinador réplica hacia los N nodos de su lista
● Si al menos W-1 nodos responden, la escritura es
correcta
get()
● El coordinador pide todas las versiones del objeto a los
N nodos de su lista
● Espera al menos a que R nodos respondan con el dato
● Si hay diferentes versiones, delega en el cliente su
resolución
● El cliente resuelve el conflicto y actualiza el dato
Hinted Handoff
● Asumiendo N=3, un fallo en una operacion
put() en el node A is administrado
temporalmente por B.
● Después de que A se recupere, B envia el
resultado de la operación put() a A.
● Ventaja: Los fallos temporales tienen un
mínimo efecto en la aplicación.
Escalabilidad
● Para añadir o quitar nodos se necesita
interacción directa
● Protocolo “Gossip”
o Detección de fallos
o Propagaciones en el cluster
● La sincronización de las replicas se realiza
mediante un Merkel hash tree
Implementación
Persistencia local, solicitud de coordinación y detección
de fallos
Persistencia local: diferentes motores (BDB, MySQL etc) - depende del tamaño
del objeto.
Solicitud de coordinación:
Petición R -> State machine -> enviar petición a nodos -> esperar y recibir
respuestas (si se reciben pocas la petición es fallida) -> decidir la versión de los
datos a devolver -> actualizar nodos a la última versión (read repair)
Petición W -> puede ser coordinada por cualquiera de los “top N nodes”
Generalmente el que antes respondió al read, para mantener la consistencia.
Estrategias seguidas con Dynamo
● Reconciliación lógica del negocio
● Reconciliación basada en Timestamp
● Alto rendimiento en lecturas
o N (Nodes) W (Writes) R(Read)
Dynamo es personalizable
● El poder cambiar los valores de N, W y R nos permite
adaptar Dynamo a nuestras necesidades.
o Bajos valores de W y R dan posibles riesgos de
inconsistencia
o Incrementando W se dotará de mayor durabilidad
o La configuración estándar es (3,2,2)
Equilibrio rendimiento-durabilidad
● El típico SLA ofrecido por Dynamo es 99.9% de
lecturas y escrituras a 300ms de latencia.
● Para algunos clientes esto no es aceptable y prefieren
intercambiar garantías de durabilidad por rendimiento.
○ Buffer en memoria
Distribución uniforme de la carga
● Un nodo está fuera de equilibrio si supera un cierto
umbral (por ejemplo un 15%) con respecto a la media
de peticiones en un determinado periodo de tiempo.
● Los tokens son nodos virtuales que se podrán distribuir
según las siguientes estrategias
○ ESTRATEGIA 1: T Tokens aleatorios por nodo
○ ESTRATEGIA 2: T Tokens del mismo tamaño
○ ESTRATEGIAS 3: Q/S Tokens por nodo y particionado del mismo
tamaño.
Conclusiones
Durante el tiempo de vida de Dynamo se ha
contrastado:
● El 99.9995% de peticiones de datos se han producido sin pérdida
● Configurable (N,R,W)
● Altamente disponible, es posible el manejo de los fallos e inconsistencias.
Bibliografia
● http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
● http://cloudacademy.com/blog/dynamodb-replication-and-partitioning-part-
4/
● http://cloudacademy.com/blog/data-versioning-with-dynamodb-an-inside-
look-into-nosql-part-5/

Weitere ähnliche Inhalte

Was ist angesagt?

Master master vs master-slave database
Master master vs master-slave databaseMaster master vs master-slave database
Master master vs master-slave databaseWipro
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육 Sangmo Kim
 
HDFS for Geographically Distributed File System
HDFS for Geographically Distributed File SystemHDFS for Geographically Distributed File System
HDFS for Geographically Distributed File SystemKonstantin V. Shvachko
 
MongoDB performance
MongoDB performanceMongoDB performance
MongoDB performanceMydbops
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperRahul Jain
 
RedisConf18 - 2,000 Instances and Beyond
RedisConf18 - 2,000 Instances and BeyondRedisConf18 - 2,000 Instances and Beyond
RedisConf18 - 2,000 Instances and BeyondRedis Labs
 
DomainKeys Identified Mail (DKIM).pptx
DomainKeys Identified Mail (DKIM).pptxDomainKeys Identified Mail (DKIM).pptx
DomainKeys Identified Mail (DKIM).pptxSrijanKumarShetty
 
Singer, Pinterest's Logging Infrastructure
Singer, Pinterest's Logging InfrastructureSinger, Pinterest's Logging Infrastructure
Singer, Pinterest's Logging InfrastructureDiscover Pinterest
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesDataWorks Summit
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용I Goo Lee
 
Apache Spark Internals
Apache Spark InternalsApache Spark Internals
Apache Spark InternalsKnoldus Inc.
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra nehabsairam
 
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...Daniel Hochman
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentSecurity Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentPGConf APAC
 
Schema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-WriteSchema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-WriteAmr Awadallah
 
Database replication
Database replicationDatabase replication
Database replicationArslan111
 
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...Monica Beckwith
 

Was ist angesagt? (20)

Master master vs master-slave database
Master master vs master-slave databaseMaster master vs master-slave database
Master master vs master-slave database
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육
 
HDFS for Geographically Distributed File System
HDFS for Geographically Distributed File SystemHDFS for Geographically Distributed File System
HDFS for Geographically Distributed File System
 
MongoDB performance
MongoDB performanceMongoDB performance
MongoDB performance
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and Zookeeper
 
RedisConf18 - 2,000 Instances and Beyond
RedisConf18 - 2,000 Instances and BeyondRedisConf18 - 2,000 Instances and Beyond
RedisConf18 - 2,000 Instances and Beyond
 
DomainKeys Identified Mail (DKIM).pptx
DomainKeys Identified Mail (DKIM).pptxDomainKeys Identified Mail (DKIM).pptx
DomainKeys Identified Mail (DKIM).pptx
 
Singer, Pinterest's Logging Infrastructure
Singer, Pinterest's Logging InfrastructureSinger, Pinterest's Logging Infrastructure
Singer, Pinterest's Logging Infrastructure
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on Kubernetes
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
Apache Spark Internals
Apache Spark InternalsApache Spark Internals
Apache Spark Internals
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra
 
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...
Geospatial Indexing at Scale: The 15 Million QPS Redis Architecture Powering ...
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentSecurity Best Practices for your Postgres Deployment
Security Best Practices for your Postgres Deployment
 
Hadoop Map Reduce
Hadoop Map ReduceHadoop Map Reduce
Hadoop Map Reduce
 
Schema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-WriteSchema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-Write
 
Database replication
Database replicationDatabase replication
Database replication
 
Cassandra
CassandraCassandra
Cassandra
 
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...
Garbage First Garbage Collector (G1 GC): Current and Future Adaptability and ...
 

Andere mochten auch

Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQLjosecuartas
 
Graph database & neo4j
Graph database & neo4jGraph database & neo4j
Graph database & neo4jSandip Jadhav
 
Transparencia en el Gobierno: Portal Estadístico de la Delegación del Gobier...
Transparencia en el Gobierno: Portal Estadístico de la  Delegación del Gobier...Transparencia en el Gobierno: Portal Estadístico de la  Delegación del Gobier...
Transparencia en el Gobierno: Portal Estadístico de la Delegación del Gobier...David Fombella Pombal
 
ETL Metadata Injection with Pentaho Data Integration
ETL Metadata Injection with Pentaho Data IntegrationETL Metadata Injection with Pentaho Data Integration
ETL Metadata Injection with Pentaho Data IntegrationDavid Fombella Pombal
 
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH) Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH) David Fombella Pombal
 
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valores
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valoresDynamo: Tienda de Amazon de alta disponibilidad de llaves y valores
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valorespaooro
 

Andere mochten auch (13)

Neo4j - A Graph Database
Neo4j - A Graph DatabaseNeo4j - A Graph Database
Neo4j - A Graph Database
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
CV Dynamo One
CV Dynamo OneCV Dynamo One
CV Dynamo One
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Graph database & neo4j
Graph database & neo4jGraph database & neo4j
Graph database & neo4j
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
Evitando el fraude a través de la presentación de la información en grafos
Evitando el fraude a través de la presentación de la información en grafosEvitando el fraude a través de la presentación de la información en grafos
Evitando el fraude a través de la presentación de la información en grafos
 
Transparencia en el Gobierno: Portal Estadístico de la Delegación del Gobier...
Transparencia en el Gobierno: Portal Estadístico de la  Delegación del Gobier...Transparencia en el Gobierno: Portal Estadístico de la  Delegación del Gobier...
Transparencia en el Gobierno: Portal Estadístico de la Delegación del Gobier...
 
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
 
ETL Metadata Injection with Pentaho Data Integration
ETL Metadata Injection with Pentaho Data IntegrationETL Metadata Injection with Pentaho Data Integration
ETL Metadata Injection with Pentaho Data Integration
 
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH) Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
 
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valores
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valoresDynamo: Tienda de Amazon de alta disponibilidad de llaves y valores
Dynamo: Tienda de Amazon de alta disponibilidad de llaves y valores
 

Ähnlich wie DynamoDB, análisis del paper.

Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLCarlos Gustavo Ruiz
 
DENALI: Disponibilidad
DENALI: Disponibilidad DENALI: Disponibilidad
DENALI: Disponibilidad SolidQ
 
Bases de Datos Analiticas-Columnares
Bases de Datos Analiticas-ColumnaresBases de Datos Analiticas-Columnares
Bases de Datos Analiticas-ColumnaresStratebi
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
SQL11: Replicación
SQL11: ReplicaciónSQL11: Replicación
SQL11: ReplicaciónSolidQ
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLscastell77
 
Tema 3 -_switches_gestionables
Tema 3 -_switches_gestionablesTema 3 -_switches_gestionables
Tema 3 -_switches_gestionablesjammanel
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos SolidQ
 
Servicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWSServicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWSAmazon Web Services LATAM
 
20120926 web perf-dns_v1
20120926 web perf-dns_v120120926 web perf-dns_v1
20120926 web perf-dns_v1Sergim
 
Analitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataAnalitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataJosé Carlos García Serrano
 
LAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchLAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchFredPincay
 
Postgresql la apuesta_acertada
Postgresql la apuesta_acertadaPostgresql la apuesta_acertada
Postgresql la apuesta_acertadaLennin Caro
 

Ähnlich wie DynamoDB, análisis del paper. (20)

Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
DENALI: Disponibilidad
DENALI: Disponibilidad DENALI: Disponibilidad
DENALI: Disponibilidad
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
 
Bases de Datos Analiticas-Columnares
Bases de Datos Analiticas-ColumnaresBases de Datos Analiticas-Columnares
Bases de Datos Analiticas-Columnares
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Spark
SparkSpark
Spark
 
Switches gestionables
Switches gestionablesSwitches gestionables
Switches gestionables
 
Practica sql
Practica sqlPractica sql
Practica sql
 
SQL11: Replicación
SQL11: ReplicaciónSQL11: Replicación
SQL11: Replicación
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
Tema 3 -_switches_gestionables
Tema 3 -_switches_gestionablesTema 3 -_switches_gestionables
Tema 3 -_switches_gestionables
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
 
Servicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWSServicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWS
 
20120926 web perf-dns_v1
20120926 web perf-dns_v120120926 web perf-dns_v1
20120926 web perf-dns_v1
 
Analitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataAnalitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big data
 
LAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchLAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witch
 
Postgresql la apuesta_acertada
Postgresql la apuesta_acertadaPostgresql la apuesta_acertada
Postgresql la apuesta_acertada
 

Kürzlich hochgeladen

clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLdanilojaviersantiago
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 

Kürzlich hochgeladen (20)

clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 

DynamoDB, análisis del paper.

  • 1. DynamoDB José A. San Miguel Carrillo Javier de la Rosa Fernández Alexandra Conde Hermo Manuel Bazaga Carmen Alonso Martínez
  • 2. Introducción ● Requisitos operativos en términos de: rendimiento, fiabilidad y eficiencia. ● Altamente escalable. ● Almacenamiento siempre disponibles (Amazon S3) ● Acceso con primary-key
  • 3. Introducción ● Data es particionada y replicada usando hashing consistente y object versioning (consistencia: técnica de quórum similar y un protocolo de sincronización de réplica descentralizado) ● Almacenamiento eventualmente consistente
  • 4. Trasfondo ¿Qué es? BD no relacional Uso de recursos eficiente Interfaz (k,v) Escalable Alta disponibilidad ¿Para quién? ● Para Amazon ● Para aquellos con problemas similares: o No requieren querys ni manejo complejo o Prefieren disponibilidad sobre consistencia
  • 5. Requisitos Query Model: R/W simple. Objetos identificados por clave única Las operaciones no afectan a más de un objeto Objetos<1MB ACID: Sacrifica consistencia por disponibilidad. No garantiza aislamiento y permite sólo actualizaciones por clave única Eficiencia: Sacrifica rendimiento, disponibilidad y eficiencia en coste para alcanzar latencias muy bajas y consistentes. Supuestos “Dynamo sólo es usado por Amazon” ● Se asume un ambiente no hostil. ● No se tienen en cuenta requisitos de seguridad. ● El primer dimensionamiento se hace acorde a las necesidades de Amazon.
  • 6. SLA - service level agreement ● Medido en el percentil 99.9, no en la media. ● tr,tw<300ms ● Enfocado a mejorar la experiencia de todos los usuarios, no de la mayoría.
  • 7. Consideraciones del diseño Eventualmente consistente - las actualizaciones llegan a las réplicas eventualmente… ¿cuándo? ¿R/W? Siempre podremos escribir. Otros principios del diseño Escalabilidad Simetría Descentralización Heterogeneidad
  • 8. Trabajo relacionado Peer to Peer Systems Freenet y Gnutella Structured P2P Networks (Pastry y Chord) DHT Oceanstore y PAST (Sistemas de almacenamiento)
  • 9. Trabajo relacionado Distributed File Systems and Databases Ficus y Coda Farsite - NFS (Network File System) Google File System GFS (Global Forecast System)
  • 10. Trabajo relacionado Distributed File Systems and Databases Bayou Antiquity (Byzantine para asegurar consistencia) Big Table
  • 11. Trabajo relacionado Discusión ● Always writeable. ● Infraestructura dentro de un dominio administrativo único. ● No requieren soporte para espacios de nombres jerárquicos ● Se construye para aplicaciones sensibles a la latencia
  • 12. Arquitectura ● Interfaz ● Particionado ● Alta disponibilidad en Escrituras ● Gestion de fallos ● Detección y recuperación ante fallos
  • 13. Interfaz ● Almacenamiento <clave,valor> ● Operaciones: o get(key): Devuelve un objeto (o una lista) de objetos (incluidos los conflictos) o put(key,context,object): Localiza donde escribir un objeto (y sus réplicas) a partir de una clave  Context contiene metainformación tal como versionado, validaciones, etc. ● Se generan identificadores de 128-bits aplicando MD5 a las claves
  • 14. Particionado ● Diseñado para un escalado incremental mediante nodos ● Esquema de particionado distribuido mediante “Consistent hashing” o Claves distribuidas en estructura de anillo en varios nodos o Cada nodo es responsable de gestionar un rango de claves o Nodos virtuales para gestionar la carga y repartición de las claves ● Cada nodo acepta una carga equivalente a las de sus vecinos.
  • 15. Replicacion ● Cada clave (k) es asignada a un coordinador (i) ● Cada valor (v) se replica en los nodos (lógicos) (N- 1) segun el sentido horario ● El coordinador (i) es responsable de actualizar el resto de nodos para las claves que posee. ● Cada clave (k) sabe los nodos físicos responsables de mantener y acceder a los valores.
  • 17. Versionado ● Consistencia Eventual ● Los datos son actualizados de forma asincrona o put() se devuelve el dato antes de actualizar todas las replicas o get() puede devolver versiones (no actualizadas) del mismo valor ● “Siempre escribe” o Carrito de la compra ● “Vector de tiempo” para el versionado
  • 20. Resolución de conflictos ● Sintáctica (interna) o Resolucion automatica ● Semántica (cliente) o Es el cliente quien decide cómo resolver el conflicto o Ejemplo: Carrito de la compra  Siempre se mantienen los items añadidos  Pueden “volver a aparecer” elementos borrados
  • 22. put() & get() ● 2 estrategias para seleccionar un nodo o En función de la carga (Generic load-balancer) o Partition aware client-library ● Operaciones de lectura y escritura a través de un nodo Coordinador ● Quorum como protocolo de consistencia o Operación de escritura se realizará en (N/2) +1 nodos ● Para mantener la consistencia se utilizan 3 variables o N – Numero de nodos o W – Número de nodos para escribir o R – Número de nodos para leer
  • 23. put() ● Ante una escritura, el coordinador genera el Vector de tiempo y escribe localmente ● El coordinador réplica hacia los N nodos de su lista ● Si al menos W-1 nodos responden, la escritura es correcta
  • 24. get() ● El coordinador pide todas las versiones del objeto a los N nodos de su lista ● Espera al menos a que R nodos respondan con el dato ● Si hay diferentes versiones, delega en el cliente su resolución ● El cliente resuelve el conflicto y actualiza el dato
  • 25. Hinted Handoff ● Asumiendo N=3, un fallo en una operacion put() en el node A is administrado temporalmente por B. ● Después de que A se recupere, B envia el resultado de la operación put() a A. ● Ventaja: Los fallos temporales tienen un mínimo efecto en la aplicación.
  • 26. Escalabilidad ● Para añadir o quitar nodos se necesita interacción directa ● Protocolo “Gossip” o Detección de fallos o Propagaciones en el cluster ● La sincronización de las replicas se realiza mediante un Merkel hash tree
  • 27. Implementación Persistencia local, solicitud de coordinación y detección de fallos Persistencia local: diferentes motores (BDB, MySQL etc) - depende del tamaño del objeto. Solicitud de coordinación: Petición R -> State machine -> enviar petición a nodos -> esperar y recibir respuestas (si se reciben pocas la petición es fallida) -> decidir la versión de los datos a devolver -> actualizar nodos a la última versión (read repair) Petición W -> puede ser coordinada por cualquiera de los “top N nodes” Generalmente el que antes respondió al read, para mantener la consistencia.
  • 28. Estrategias seguidas con Dynamo ● Reconciliación lógica del negocio ● Reconciliación basada en Timestamp ● Alto rendimiento en lecturas o N (Nodes) W (Writes) R(Read)
  • 29. Dynamo es personalizable ● El poder cambiar los valores de N, W y R nos permite adaptar Dynamo a nuestras necesidades. o Bajos valores de W y R dan posibles riesgos de inconsistencia o Incrementando W se dotará de mayor durabilidad o La configuración estándar es (3,2,2)
  • 30. Equilibrio rendimiento-durabilidad ● El típico SLA ofrecido por Dynamo es 99.9% de lecturas y escrituras a 300ms de latencia. ● Para algunos clientes esto no es aceptable y prefieren intercambiar garantías de durabilidad por rendimiento. ○ Buffer en memoria
  • 31. Distribución uniforme de la carga ● Un nodo está fuera de equilibrio si supera un cierto umbral (por ejemplo un 15%) con respecto a la media de peticiones en un determinado periodo de tiempo. ● Los tokens son nodos virtuales que se podrán distribuir según las siguientes estrategias ○ ESTRATEGIA 1: T Tokens aleatorios por nodo ○ ESTRATEGIA 2: T Tokens del mismo tamaño ○ ESTRATEGIAS 3: Q/S Tokens por nodo y particionado del mismo tamaño.
  • 32. Conclusiones Durante el tiempo de vida de Dynamo se ha contrastado: ● El 99.9995% de peticiones de datos se han producido sin pérdida ● Configurable (N,R,W) ● Altamente disponible, es posible el manejo de los fallos e inconsistencias.

Hinweis der Redaktion

  1. Consistent hashing: Consistent hashing is a special kind of hashing such that when a hash table is resized and consistent hashing is used, only keys need to be remapped on average, where is the number of keys, and is the number of slots. In contrast, in most traditional hash tables, a change in the number of array slots causes nearly all keys to be remapped. (WIKIPEDIA) PAPER: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.147.1879 Si un nodo no está disponible (por fallas o mantenimiento de rutina), la carga manejada por este nodo se dispersa de forma uniforme en todos los nodos disponibles restantes. Cuando un nodo esté disponible de nuevo o un nodo nuevo se añade al sistema, el nodo recién disponible acepta una cantidad aproximadamente equivalente de carga de cada uno de los nodos disponibles.
  2. Each key (k) is assigned to a coordinator node (i). Each value (v) is replicated to (N-1) clockwise successor logical nodes in the ring. Node (i) is responsible to update all other (N-1) replicas for the keys it owns. Each key (k) has a preference list of physical nodes that are responsible to maintain and access the keys data
  3. Eventual consistency protocol is used to update all data replicas asynchronously. put() is returned before updating all replicas. get() can return multiple versions for the same key. Dynamo track each data mutation as a new version version to support “write always” protocol. Dynamo uses vector clocks protocol for versioning
  4. ¿? Bastante dificil de explicar (seguimos, mas adelante explicada
  5. Syntactic reconciliation: The Application is able to resolve the conflict automatically Semantic reconciliation: Merge results from different conflicts, make the user revise the new values. Example: Amazons shopping cart: Preserve “Add to cart” items. Deleted items can resurface
  6. 2 strategies client uses to select a node Generic load-balancer that will select a node based on load Partition aware client-library which routes request to right node Node handling read and write operation is called “coordinator” Coordinator should be among first in top N nodes in preference list For reads and writes dynamo uses consistency protocol similar to quorum system Consistency protocol has 3 variables N – Number of replicas of data to be read or written W – Number of nodes that must participate in successful write operation R – Number of machines contacted in read operation
  7. Upon receiving put() request coordinator generates vector clock and writes data locally Coordinator sends new version (along with vector clock) to top N nodes from preference list If at least W-1 nodes respond, write is successful
  8. Coordinator requests all existing version of data from top N nodes from preference list Waits for at least R nodes to respond In case of multiple versions, coordinator send all casually unrelated versions to client Client reconcile divergent versions and supersede current version with reconciled version
  9. Adding or removing the node requires a third party tool or direct user interaction. Gossip-based protocol is used to propagate membership throughout the cluster and to detect failures. Replica synchronization is done using Merkle hash tree.