Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La coherencia del cosmos

La coherencia del cosmos

Si estas familiarizado con las bases de datos distribuidas, seguramente hayas utilizado alguna vez el término coherencia, o más concretamente hayas hablado de la coherencia de datos, esto es, la necesidad de establecer la lógica necesaria para que los distintos datos replicados en tu infraestructura contengan la misma información.

Habitualmente, se habla de coherencia fuerte y coherencia eventual, pero si has tenido la oportunidad de crear una instancia de Azure Cosmos, te habrás dado cuenta de que ofrece la posibilidad de seleccionar hasta cinco niveles de coherencia diferentes.

En esta charla me gustaría repasar en profundidad los diferentes tipos de coherencia de datos que ofrece Azure Cosmos Db, ver sus diferencias, y en que escenarios es más aconsejable seleccionar unos u otros.

Avatar for Jose Luque Ballesteros

Jose Luque Ballesteros

November 24, 2018

Other Decks in Technology

Transcript

  1. MAD · NOV 23-24 · 2018 Agenda ▪ El punto

    de partida: RDBMS y ACID ▪ La explosión: NoSQL y CAP ▪ El cosmos: Azure Cosmos DB ▪ La coherencia ▪ DEMO ▪ La elección
  2. MAD · NOV 23-24 · 2018 MAD · NOV 23-24

    · 2018 El Punto de Partida
  3. MAD · NOV 23-24 · 2018 El origen. RDBMS 70s

    ▪ Definición del modelo relacional (E.F Codd) ▪ Aparición de BBDD Oracle ▪ IBM: System R, precursor de SQL 80s ▪ DB2 de IBM, Posgre… ▪ SQL como lenguaje estandarizado 90s ▪ SGBDOO (BBDD orientadas a Objetos) ▪ Microsoft SQL Server, MySQL, PostgreSQL… Edgar Frank Cood
  4. MAD · NOV 23-24 · 2018 El origen. Transacciones y

    ACID Una transacción es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final debe ser que se ejecuten todas o ninguna de ellas.
  5. MAD · NOV 23-24 · 2018 El origen. Problemas ▪

    Escalabilidad ▪ Uso inadecuado o indebido ▪ Nuevos escenarios ▪ Datos, datos y más datos
  6. MAD · NOV 23-24 · 2018 El cosmos. La historia

    ▪ 2010: Project Florence ▪ 2015: Document DB ▪ 2017: Cosmos DB
  7. MAD · NOV 23-24 · 2018 El cosmos. Core Features

    ▪ JSON Data Store ▪ Geo-Replication a golpe de click ▪ Manual/Automated Failover ▪ SLA Latency 99.99% (<10ms reads; <15ms writes) ▪ https://azure.microsoft.com/en-us/support/legal/sla/cosmos-db/v1_0/ ▪ Throughput desde el inicio ▪ As a Service ▪ Múltiples niveles de coherencia ▪ Auto-Indexado por defecto
  8. MAD · NOV 23-24 · 2018 La coherencia. Data Consistency

    Necesidad de establecer la lógica necesaria para que los distintos datos replicados en tu infraestructura contengan la misma información.
  9. MAD · NOV 23-24 · 2018 La coherencia. Strong ▪

    Nivel de consistencia máximo ▪ Menor rendimiento ▪ No permite asociar más de una región
  10. MAD · NOV 23-24 · 2018 La coherencia. Bounded-Staleness ▪

    Lecturas por detrás de escrituras ▪ Permite definir un lapso de obsolescencia ▪ Tiempo ▪ Número de versiones ▪ Mejor rendimiento que fuerte ▪ Más de una región
  11. MAD · NOV 23-24 · 2018 La coherencia. Session ▪

    Nivel de coherencia predeterminado ▪ Similar al concepto sesión de un aplicación ▪ Última versión del dato requerido dentro de nuestra sesión ▪ Menor consistencia que fuerte y obsolescencia limitada pero mejor rendimiento en escrituras y sobre todo en lecturas
  12. MAD · NOV 23-24 · 2018 La coherencia. Consistent Prefix

    ▪ Lecturas en base a escrituras ordenadas ▪ En ausencia de nuevas escrituras las lecturas serán consistentes
  13. MAD · NOV 23-24 · 2018 La coherencia. Eventual ▪

    Orden de escrituras no garantizado ▪ En ausencia de nuevas escrituras las lecturas serán consistentes ▪ Máximo rendimiento en lecturas y escrituras
  14. MAD · NOV 23-24 · 2018 La elección. ¿Cuándo utilizar

    Azure Cosmos DB? ▪ Tiempos de respuesta reducidos ▪ Escalar rápida y globalmente ▪ IoT ▪ Almacenamiento de la ingesta de datos de un Event Hub ▪ Almacenamiento previo al procesado por Hive o Map/Reduce ▪ E-Commerce ▪ Almacenamiento de datos de catálogo, personas, lugares, productos. ▪ Esquemas flexibles que se adaptan a cambios en la estructura de los datos ▪ Gaming ▪ Estadísticas de jugadores ▪ Muy muy baja latencia
  15. MAD · NOV 23-24 · 2018 La elección. El coste

    ▪ RU/s que hemos establecido ▪ https://www.documentdb.com/capacityplanner ▪ Tipo de coherencia seleccionado ▪ Para idénticas RU Session, Consistent Prefix y Eventual = x2 Strong ó Bounded Staleness ▪ Número de réplicas/regiones ▪ La gran pregunta: ¿Es caro?