Bases de Datos NoSQL
BDM - 2019
Contexto
Escalabilidad Horizontal
Los sistemas no escalables alcanzan una meseta de rendimiento, donde agregar nuevos procesadores no incrementa el rendimiento.
Las arquitecturas escalables lineales proporcionan una tasa constante de rendimiento adicional a medida que aumenta el número de procesadores
¿Qué es NoSQL?
NoSQL es un conjunto de conceptos que permiten el procesamiento rápido y eficiente de conjuntos de datos poniendo el foco en la performance, confiabilidad y agilidad.
MMM.. pero no excluye los sistemas SQL o RDBMS..
¿Qué es y qué no es NoSQL?
It’s more than rows in tables.
It’s free of joins
It’s schema-free
It works on many processors
It uses shared-nothing commodity computer
It supports linear scalability
It’s innovative
It’s not about the SQL language
It’s not only open source
It’s not only big data
It’s not about cloud computing
It’s not about a clever use of RAM and SSD
It’s not an elite group of products
Presiones en una arquitectura RDBMS
Las empresas han encontrado valor en capturar y analizar rápidamente grandes cantidades de datos variables, y realizar cambios inmediatos en sus negocios en función de la información que reciben.
Business Drivers
Control de Transacciones
Control de transacciones es importante en entornos informáticos distribuidos con respecto al rendimiento y la consistencia
Modelos de control de transacciones:
Principales diferencias radican en:
Para que la transacción se considere confiable, ambos pasos deben funcionar o ambos deben deshacerse.
RDBMS
BEGIN TRANSACTION ... END TRANSACTION
La transacción es responsabilidad del motor de bd.
Control de Transacciones: ACID
RDBMS controla las transacciones a través del uso de la atomicidad, consistencia, independencia y la persistencia.
Esto se sintetiza las propiedades de ACID.
Atomicity
Todo o Nada
La transacción no se puede dividir
Consistency
La transacción pasa la base de datos de un estado consistente a otro también consistente
Isolation
Las transacciones se ejecutan de manera independiente.
Durability
Los cambios en la BD son permanentes.
Se persiste un estado consistente.
ACID hace foco en la consistencia y en la integridad por sobre otros desafío.
Utiliza estrategias de bloqueo de recursos
Situación: ACID
BEGIN TRANSACTION ... END TRANSACTION
¿Qué pasa si tengo un Web Site?
Sin Control de Transacciones: BASE
BASE
ACID vs BASE
Teorema CAP
Teorema CAP
Tipos de almacenamiento
Type
NoSQL
Typical usage
Examples
Almacenamiento Key-Value
PROS: escalable, simple API (put, get, delete)
CONT: no hay forma de consultar el contenido de los valores.
Ejemplos:
Berkley DB,
Memcache,
DynamoDB, S3,
Redis, Riak
Column-Family
Column store key-value
La clave está compuesta de:
Value
Graph Store
Ejemplos:
Neo4j, AllegroGraph,
Bigdata triple store,
InfiniteGraph,
StarDog
Almacenamiento de documentos
Pros: No existe una capa de mapeo de objetos
Cons: Incompatible con SQL, complejo de implementar
Ejemplos:
MarkLogic, MongoDB,
Couchbase, CouchDB,
RavenDB, eXist-db
Modelos de NoSQL orientado a Documentos
Ejemplo: Base de documentos de bibliografía
Documentos
JSON
Consultar los documentos
No hay un lenguaje de consultas estándar como SQL
Recupero TODOS los documentos
Consultar los documentos
Recupero solo documentos que contengan la secuencia 2012
Casos de Estudio
LiveJournal’s Memcache
Google’s Bigtable
Bibliografía