SlideShare una empresa de Scribd logo
Bd NoSQL
Clave Valor
PROFA. MERCY OSPINA
mercy.ospinat@gmail.com
Agenda
Modelo de datos
Operaciones
Técnicas usadas
Cuando usar
Caso de estudio
Modelo de datos
Una tabla hash, matriz asociativa, mapa
hash, tabla de dispersión o tabla fragmentada
◦ Es una estructura de datos que asocia llaves o claves con
valores.
◦ La operación principal que soporta de manera eficiente es
la búsqueda: permite el acceso a los elementos (teléfono y
dirección, por ejemplo) almacenados a partir de una clave
generada
Distribución de los datos
Para agilizar las búsquedas por la clave se utilizan
normalmente funciones de asociación que son las
que definen donde se almacenará el dato y luego
permiten su rápido acceso
Distribución de los datos
Pero en sistemas distribuidos donde los nodos pueden entrar
y salir de manera dinámica (p2p) este esquema es complejo
de manejar
En estos casos se propone el uso de la técnica como “Hashing
Consistente” que requiere el diseño de Tablas hashing
distribuidas
Almacenamiento
Si cada nodo tiene un conjunto de claves aleatorias,
internamente puede almacenarse de distintas
maneras:
◦ Tabla hash
◦ arboles B+ (Tokyo Cabinet)
Tipos de registros
◦ <key, value>
◦ Tupla<key, v1,. ., vn>
Operaciones
Operaciones simples
◦ Set(key, value) o put (key, value)
◦ Get (key) : value
◦ Delete (key)
Otras operaciones
◦ Operaciones sobre listas, conjuntos, mapas, entre otros
◦ Push, Insert, remove, count, leng, etc.
◦ mapreduce(keyList, mapFunc, reduceFunc)
◦ Depende de la base de datos
Tipos
Tipo Base de datos
Clave-Valor en memoria
Coherence, eXtreme Scale, Redis, GigaSpaces,
GemFire, Hazelcast, Infinispan, JBoss
Cache, Memcached,
Repcached, Terracotta, Velocity
Clave –Valor persistente
Flare, Keyspace, RAMCloud,
SchemaFree, Hyperdex, Aerospike
Clave –Valor (Consistencia
Eventual)
DovetailDB, Dynamo, Riak, Dynomite,
MotionDb, Voldemort, SubRecord
Clave –Valor (Ordenada)
Actord, FoundationDB, Lightcloud,
Luxio, MemcacheDB, NMDB, Scalaris,
TokyoTyrant
Técnicas usadas
Voldemort, Riak, Redis, Scalaris, Tokyo Cabinet,
Memcached/Membrain/Membase
◦ Hashig Consistente(DHT)
◦ Solo indices primarios: búsqueda por clave
◦ No manejan índices secundarios
◦ Transacciones: actuakizacion simple o multiple.
◦ Concurrencia: bloqueos o MVCC
Ejemplo – DynamoDB
Problema Técnica Ventaja
Arquitectura P2P Escalabilidad transparente
Sharding Hashing Consistente Escalabilidad Incremental
Alta disponibilidad de escrituras
Relojes de vector con
reconciliación durante lecturas
Tamaño de versiones está
desacoplada de las tasas de
actualización.
Manejo de fallas temporales Sloppy Quorum y hinted handoff
Proporciona alta disponibilidad y
garantía de durabilidad cuando
algunas de las réplicas no están
disponibles.
Recuperación de fallas
permanentes
Anti entropía con árboles Merkle
Sincroniza réplicas divergentes en
background
Entrada y salida de nodos
Protocolo de membresía y
detección de fallos basado en
Gossip
Conserva la simetría y evita tener
un registro centralizado para el
almacenamiento de membresía e
información de nodos activos .
Caso de estudio - Redis
Es una almacén de clave valor de código abierto
◦ Primera versión: abril 2009 (actualmente 3.2.1 V estable)
◦ Escrito en C
◦ Multiplataforma (menos Windows)
◦ Licencia Creative Commons CC BY-SA 4.0
◦ Arquitectura maestro-esclavo (clúster)
◦ Sitio web: http://redis.io
Maneja varios tipos de datos indexados por la clave como:
◦ Cadena de caracteres (string) seguras binarias
◦ hashes,
◦ Listas (lists)
◦ conjuntos y conjuntos ordenados (set, sorted set)
◦ Arreglos de bits (bitmaps)
◦ Hyperlogs: datos probabilísticos para estimar la cardinalidad de un conjunto
Caso de estudio - Redis
Trabaja en memoria principal lo que disminuye los tiempos de respuesta
◦ Cada segundo Redis puede manejar mas de 100.000 operaciones de Lectura/Escritura
Es posible tener persistencia
◦ volcar el conjunto de datos en el disco de acuerdo a la tasa de actualizaciones
◦ o añadiendo cada comando en un registro log.
Particionamiento
◦ Por rango de claves: haciendo corresponder un rango a una instancia de Redis
◦ Ventaja: sencillo de implementar
◦ Desventaja: requiere llevar una tabla de correspondencia entre los rangos y las instancias
◦ Por hashing: requiere una función que hash que convierta un string en un número y luego
la función módulo n donde n es el número de instancias de redis. Ejemplo para instancias
R0..R3 de redis
◦ Se aplica la fución crc32 a la clave: crc32(foobar)93024922.
◦ 93024922 mod 4 = 2 (se guarda en la instancia R2)
Caso de estudio - Redis
Particionamiento
◦ Partición del lado del cliente: el cliente selecciona el nodo donde almacenar la clave,
usando rango de claves o hashing
◦ Partición asistida por proxy: Se configura el esquema de partición en un proxy y este se
encarga de transmitan los datos a la instancia correspondiente
◦ Enrutamiento de consultas: la consulta puede dirigirse a cualquier nodo y este se
asegurará que llegue al nodo correcto
◦ No implementa Hash Consistente
Consideraciones
◦ No soporta consultas a múltiples claves que están en instancias diferentes
◦ No soporta transacciones que involucren varias claves
◦ El manejo de datos es complejo cuando se usa sharding
◦ Agregar o quitar nodos es complejo
Caso de estudio - Redis
Replicación
◦ Usa replicación asíncrona, con una configuración maestro-esclavo
◦ Un maestro puede tener varios esclavos
◦ Usa MVCC para la concurrencia, sin bloqueos del maestro o los esclavos
◦ Si un maestro falla (es inalcanzable) se promueve un esclavo como nuevo maestro
◦ Más información http://redis.io/topics/replication
Caso de estudio – Redis
Arquitectura
 Todos los nodos se
conectan directamente
con los demás a través
del “Redis Cluster Bus”
 Usa gossip para la
eliminación o ingreso
de nuevos nodos
(membresía)
http://redis.io/topics/cluster-spec
Caso de estudio – Redis
Seguridad
◦ Diseñado para ser accedido por los clientes de confianza
◦ Si el acceso no es de confianza debe estar mediado por una
capa de la aplicación de auditoria.
◦ Aunque no implementa control de acceso ofrece una capa
de autenticación que se activa en el archivo redis.conf
◦ Redis no implementa cifrado de datos
◦ Es muy difícil la inyección de código por no tener código de
escape
Caso de estudio - Redis
Tiene API’s para diferentes lenguajes
◦ PHP,
◦ Java,
◦ Python,
◦ Ruby,
◦ Perl,
◦ Scala,
◦ C, C++,Objective C, Node.js,
◦ Muchos más…
Caso de estudio - Redis
Algunos usos de Redis
◦ Mensajería
◦ Mostrar últimos artículos listados en su página principal.
◦ Supresión y filtrado.
◦ Tablas de clasificación y problemas relacionados
◦ Colas
◦ Análisis en tiempo real de lo que sucede, estadísticas, anti
spam.
◦ Caching
◦ Muchos más ...
Caso de estudio – Redis
¿Quién lo usa?
Clave valor
Investigar en Riak
◦ Tipos de datos y operaciones
◦ Arquitectura
◦ Fragmentación y replicación (técnicas)
◦ Seguridad
◦ Usos
Cuando usar almacenes
clave-valor
Cuando la capacidad de
almacenar y recuperar
grandes volúmenes de
datos es importante
No es importante
almacenar las
relaciones entre los
elementos
La data es no
estructurada
Util para el desarrollo
rápido de prototipos
Manejo del crecimiento
rápido de la lista de
elementos: twitter,
registros históricos de
internet, blogs
No se requiere la
implementación de
validaciones lógicas o
restricciones de los
datos en la BD
Limitaciones de clave-valor
Falta de estándares para el manejo de datos
Lenguajes de consulta no son de alto nivel
Herramientas para su uso y configuración
Consultas y ordenamiento solamente por clave
primaria
Próxima clase
BD NoSQL Documento:
◦ Modelo de datos
◦ Operaciones
◦ Técnicas usadas
◦ Caso de estudio

Más contenido relacionado

La actualidad más candente

NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
Jorge Paredes Toledo
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
José Antonio Sandoval Acosta
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Vannesa Salazar
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
Isabel Gómez
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
Juan Carlos Ortega
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
kamui002
 
Administracion de Bases de datos
Administracion de Bases de datosAdministracion de Bases de datos
Administracion de Bases de datos
Maria Valentina Rondon
 
Bases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big DataBases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big Data
Emilio Rodríguez García
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocation
VERONICA PONCE
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
Jesús Tramullas
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Mayra Romero
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
Cristian Salazar C.
 
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD MovilesBD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
José Antonio Sandoval Acosta
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
Andrea Antunes
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
José Antonio Sandoval Acosta
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Javier Rubiano Quiroga
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
Escuela de Computación UCV
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
Jose Guadalupe Couoh Dzul
 

La actualidad más candente (20)

NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
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
 
Arquitectura sql
Arquitectura sqlArquitectura sql
Arquitectura sql
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
Administracion de Bases de datos
Administracion de Bases de datosAdministracion de Bases de datos
Administracion de Bases de datos
 
Bases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big DataBases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big Data
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocation
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD MovilesBD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 

Destacado

Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
Escuela de Computación UCV
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
Escuela de Computación UCV
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
Escuela de Computación UCV
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
Escuela de Computación UCV
 
Bd no sqlcb2
Bd no sqlcb2Bd no sqlcb2
NoSql y MongoDB
NoSql y MongoDBNoSql y MongoDB
NoSql y MongoDB
David Gómez García
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
César Rodas
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
Javier Guillot Jiménez
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
Diego López-de-Ipiña González-de-Artaza
 
Volos-CS-UTH
Volos-CS-UTHVolos-CS-UTH
Volos-CS-UTH
Dimitris Tsingos
 
What is Called Design ?
What is Called Design ?What is Called Design ?
What is Called Design ?
Stéphane Vial
 
Bhakt Bol Kaun Sa Swaroop
Bhakt Bol   Kaun Sa SwaroopBhakt Bol   Kaun Sa Swaroop
Bhakt Bol Kaun Sa SwaroopMool Chand
 
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
KoenWiegman
 
Il codice del marketing della conversazione
Il codice del marketing della conversazioneIl codice del marketing della conversazione
Il codice del marketing della conversazione
Flavia Rubino | The Talking Village
 
Early release october 2014 engagement & curriculum
Early release october 2014 engagement & curriculumEarly release october 2014 engagement & curriculum
Early release october 2014 engagement & curriculumJennifer Marten
 
Health_Literacy_Glossary_011215
Health_Literacy_Glossary_011215Health_Literacy_Glossary_011215
Health_Literacy_Glossary_011215pcowley2141
 
Walk UNH
Walk UNHWalk UNH

Destacado (20)

Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
 
Oopphp5
Oopphp5Oopphp5
Oopphp5
 
Bd no sqlcb2
Bd no sqlcb2Bd no sqlcb2
Bd no sqlcb2
 
NoSql y MongoDB
NoSql y MongoDBNoSql y MongoDB
NoSql y MongoDB
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Volos-CS-UTH
Volos-CS-UTHVolos-CS-UTH
Volos-CS-UTH
 
What is Called Design ?
What is Called Design ?What is Called Design ?
What is Called Design ?
 
Bhakt Bol Kaun Sa Swaroop
Bhakt Bol   Kaun Sa SwaroopBhakt Bol   Kaun Sa Swaroop
Bhakt Bol Kaun Sa Swaroop
 
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
Presentatie convenant VRK reddingsbrigade Kennemerlands v1 3
 
Ghana At A Glance
Ghana At A GlanceGhana At A Glance
Ghana At A Glance
 
Il codice del marketing della conversazione
Il codice del marketing della conversazioneIl codice del marketing della conversazione
Il codice del marketing della conversazione
 
Early release october 2014 engagement & curriculum
Early release october 2014 engagement & curriculumEarly release october 2014 engagement & curriculum
Early release october 2014 engagement & curriculum
 
Health_Literacy_Glossary_011215
Health_Literacy_Glossary_011215Health_Literacy_Glossary_011215
Health_Literacy_Glossary_011215
 
1999 Complete Single Collection
1999 Complete Single Collection1999 Complete Single Collection
1999 Complete Single Collection
 
Walk UNH
Walk UNHWalk UNH
Walk UNH
 

Similar a Bd nosql clave valor

El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
Big Data Spain
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
CloudAppi
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
Germán Küber
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
Cycle-IT
 
Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
Fernando Escolar Martínez-Berganza
 
Interconexion de redes
Interconexion de redesInterconexion de redes
Interconexion de redesKary Gomez
 
Big Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data LakeBig Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data Lake
Guillermo Javier Bellmann
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
BEEVA_es
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadores
Rafael Bermúdez Míguez
 
OTN Tour 2015 AROUG
OTN Tour 2015 AROUGOTN Tour 2015 AROUG
OTN Tour 2015 AROUG
Sebastián D'Alessandro
 
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
José Carlos García Serrano
 
Comparación de algunos SGBDR
Comparación de algunos SGBDRComparación de algunos SGBDR
Comparación de algunos SGBDR
Antonio
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
Carlos Camacho
 
programacion concurrente java.pptx
programacion concurrente java.pptxprogramacion concurrente java.pptx
programacion concurrente java.pptx
juan gonzalez
 
Taller Redis
Taller RedisTaller Redis
Taller Redisbetabeers
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
Axel De La Fuente
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
Eduardo Castro
 
Gapand2017 rediscahe
Gapand2017 rediscaheGapand2017 rediscahe
Gapand2017 rediscahe
Robert Bermejo Blasco
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis

Similar a Bd nosql clave valor (20)

El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
 
Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
 
Interconexion de redes
Interconexion de redesInterconexion de redes
Interconexion de redes
 
Big Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data LakeBig Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data Lake
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadores
 
OTN Tour 2015 AROUG
OTN Tour 2015 AROUGOTN Tour 2015 AROUG
OTN Tour 2015 AROUG
 
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
 
Comparación de algunos SGBDR
Comparación de algunos SGBDRComparación de algunos SGBDR
Comparación de algunos SGBDR
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
programacion concurrente java.pptx
programacion concurrente java.pptxprogramacion concurrente java.pptx
programacion concurrente java.pptx
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
 
Gapand2017 rediscahe
Gapand2017 rediscaheGapand2017 rediscahe
Gapand2017 rediscahe
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis
Las cronicas de redis
 

Más de Escuela de Computación UCV

Recuperacion ABD UCV
Recuperacion ABD UCVRecuperacion ABD UCV
Recuperacion ABD UCV
Escuela de Computación UCV
 
Concurrencia 2 ABD UCV
Concurrencia 2 ABD UCVConcurrencia 2 ABD UCV
Concurrencia 2 ABD UCV
Escuela de Computación UCV
 
Concurrencia 1 ABD UCV
Concurrencia 1 ABD UCVConcurrencia 1 ABD UCV
Concurrencia 1 ABD UCV
Escuela de Computación UCV
 
Seguridad datos i
Seguridad datos i Seguridad datos i
Seguridad datos i
Escuela de Computación UCV
 
Seguridad datos ii vii
Seguridad datos ii viiSeguridad datos ii vii
Seguridad datos ii vii
Escuela de Computación UCV
 
Abd manejo memoria III
Abd manejo memoria IIIAbd manejo memoria III
Abd manejo memoria III
Escuela de Computación UCV
 
Abd manejo memoria II
Abd manejo memoria IIAbd manejo memoria II
Abd manejo memoria II
Escuela de Computación UCV
 
Abd manejo memoria Parte I
Abd manejo memoria Parte IAbd manejo memoria Parte I
Abd manejo memoria Parte I
Escuela de Computación UCV
 
Bd no sql tecnicas
Bd no sql tecnicasBd no sql tecnicas
Bd no sql tecnicas
Escuela de Computación UCV
 
Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)
Escuela de Computación UCV
 
Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)
Escuela de Computación UCV
 
Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)
Escuela de Computación UCV
 
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
Escuela de Computación UCV
 
Abd procesamiento consultas
Abd procesamiento consultasAbd procesamiento consultas
Abd procesamiento consultas
Escuela de Computación UCV
 
Abd seguridad
Abd seguridadAbd seguridad
Abd integridad
Abd integridadAbd integridad
Abd tema3
Abd tema3Abd tema3

Más de Escuela de Computación UCV (20)

Recuperacion ABD UCV
Recuperacion ABD UCVRecuperacion ABD UCV
Recuperacion ABD UCV
 
Concurrencia 2 ABD UCV
Concurrencia 2 ABD UCVConcurrencia 2 ABD UCV
Concurrencia 2 ABD UCV
 
Concurrencia 1 ABD UCV
Concurrencia 1 ABD UCVConcurrencia 1 ABD UCV
Concurrencia 1 ABD UCV
 
Seguridad datos i
Seguridad datos i Seguridad datos i
Seguridad datos i
 
Seguridad datos ii vii
Seguridad datos ii viiSeguridad datos ii vii
Seguridad datos ii vii
 
Abd manejo memoria III
Abd manejo memoria IIIAbd manejo memoria III
Abd manejo memoria III
 
Abd manejo memoria II
Abd manejo memoria IIAbd manejo memoria II
Abd manejo memoria II
 
Abd manejo memoria Parte I
Abd manejo memoria Parte IAbd manejo memoria Parte I
Abd manejo memoria Parte I
 
Bd no sql tecnicas
Bd no sql tecnicasBd no sql tecnicas
Bd no sql tecnicas
 
Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)
 
Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)
 
Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)
 
Abd tema0y1
Abd tema0y1Abd tema0y1
Abd tema0y1
 
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
 
Abd procesamiento consultas
Abd procesamiento consultasAbd procesamiento consultas
Abd procesamiento consultas
 
Abd seguridad
Abd seguridadAbd seguridad
Abd seguridad
 
Abd integridad
Abd integridadAbd integridad
Abd integridad
 
Abd tema4 dd
Abd tema4 ddAbd tema4 dd
Abd tema4 dd
 
Abd tema2
Abd tema2Abd tema2
Abd tema2
 
Abd tema3
Abd tema3Abd tema3
Abd tema3
 

Último

Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 

Último (20)

Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 

Bd nosql clave valor

  • 1. Bd NoSQL Clave Valor PROFA. MERCY OSPINA mercy.ospinat@gmail.com
  • 2. Agenda Modelo de datos Operaciones Técnicas usadas Cuando usar Caso de estudio
  • 3. Modelo de datos Una tabla hash, matriz asociativa, mapa hash, tabla de dispersión o tabla fragmentada ◦ Es una estructura de datos que asocia llaves o claves con valores. ◦ La operación principal que soporta de manera eficiente es la búsqueda: permite el acceso a los elementos (teléfono y dirección, por ejemplo) almacenados a partir de una clave generada
  • 4. Distribución de los datos Para agilizar las búsquedas por la clave se utilizan normalmente funciones de asociación que son las que definen donde se almacenará el dato y luego permiten su rápido acceso
  • 5. Distribución de los datos Pero en sistemas distribuidos donde los nodos pueden entrar y salir de manera dinámica (p2p) este esquema es complejo de manejar En estos casos se propone el uso de la técnica como “Hashing Consistente” que requiere el diseño de Tablas hashing distribuidas
  • 6. Almacenamiento Si cada nodo tiene un conjunto de claves aleatorias, internamente puede almacenarse de distintas maneras: ◦ Tabla hash ◦ arboles B+ (Tokyo Cabinet) Tipos de registros ◦ <key, value> ◦ Tupla<key, v1,. ., vn>
  • 7. Operaciones Operaciones simples ◦ Set(key, value) o put (key, value) ◦ Get (key) : value ◦ Delete (key) Otras operaciones ◦ Operaciones sobre listas, conjuntos, mapas, entre otros ◦ Push, Insert, remove, count, leng, etc. ◦ mapreduce(keyList, mapFunc, reduceFunc) ◦ Depende de la base de datos
  • 8. Tipos Tipo Base de datos Clave-Valor en memoria Coherence, eXtreme Scale, Redis, GigaSpaces, GemFire, Hazelcast, Infinispan, JBoss Cache, Memcached, Repcached, Terracotta, Velocity Clave –Valor persistente Flare, Keyspace, RAMCloud, SchemaFree, Hyperdex, Aerospike Clave –Valor (Consistencia Eventual) DovetailDB, Dynamo, Riak, Dynomite, MotionDb, Voldemort, SubRecord Clave –Valor (Ordenada) Actord, FoundationDB, Lightcloud, Luxio, MemcacheDB, NMDB, Scalaris, TokyoTyrant
  • 9. Técnicas usadas Voldemort, Riak, Redis, Scalaris, Tokyo Cabinet, Memcached/Membrain/Membase ◦ Hashig Consistente(DHT) ◦ Solo indices primarios: búsqueda por clave ◦ No manejan índices secundarios ◦ Transacciones: actuakizacion simple o multiple. ◦ Concurrencia: bloqueos o MVCC
  • 10. Ejemplo – DynamoDB Problema Técnica Ventaja Arquitectura P2P Escalabilidad transparente Sharding Hashing Consistente Escalabilidad Incremental Alta disponibilidad de escrituras Relojes de vector con reconciliación durante lecturas Tamaño de versiones está desacoplada de las tasas de actualización. Manejo de fallas temporales Sloppy Quorum y hinted handoff Proporciona alta disponibilidad y garantía de durabilidad cuando algunas de las réplicas no están disponibles. Recuperación de fallas permanentes Anti entropía con árboles Merkle Sincroniza réplicas divergentes en background Entrada y salida de nodos Protocolo de membresía y detección de fallos basado en Gossip Conserva la simetría y evita tener un registro centralizado para el almacenamiento de membresía e información de nodos activos .
  • 11. Caso de estudio - Redis Es una almacén de clave valor de código abierto ◦ Primera versión: abril 2009 (actualmente 3.2.1 V estable) ◦ Escrito en C ◦ Multiplataforma (menos Windows) ◦ Licencia Creative Commons CC BY-SA 4.0 ◦ Arquitectura maestro-esclavo (clúster) ◦ Sitio web: http://redis.io Maneja varios tipos de datos indexados por la clave como: ◦ Cadena de caracteres (string) seguras binarias ◦ hashes, ◦ Listas (lists) ◦ conjuntos y conjuntos ordenados (set, sorted set) ◦ Arreglos de bits (bitmaps) ◦ Hyperlogs: datos probabilísticos para estimar la cardinalidad de un conjunto
  • 12. Caso de estudio - Redis Trabaja en memoria principal lo que disminuye los tiempos de respuesta ◦ Cada segundo Redis puede manejar mas de 100.000 operaciones de Lectura/Escritura Es posible tener persistencia ◦ volcar el conjunto de datos en el disco de acuerdo a la tasa de actualizaciones ◦ o añadiendo cada comando en un registro log. Particionamiento ◦ Por rango de claves: haciendo corresponder un rango a una instancia de Redis ◦ Ventaja: sencillo de implementar ◦ Desventaja: requiere llevar una tabla de correspondencia entre los rangos y las instancias ◦ Por hashing: requiere una función que hash que convierta un string en un número y luego la función módulo n donde n es el número de instancias de redis. Ejemplo para instancias R0..R3 de redis ◦ Se aplica la fución crc32 a la clave: crc32(foobar)93024922. ◦ 93024922 mod 4 = 2 (se guarda en la instancia R2)
  • 13. Caso de estudio - Redis Particionamiento ◦ Partición del lado del cliente: el cliente selecciona el nodo donde almacenar la clave, usando rango de claves o hashing ◦ Partición asistida por proxy: Se configura el esquema de partición en un proxy y este se encarga de transmitan los datos a la instancia correspondiente ◦ Enrutamiento de consultas: la consulta puede dirigirse a cualquier nodo y este se asegurará que llegue al nodo correcto ◦ No implementa Hash Consistente Consideraciones ◦ No soporta consultas a múltiples claves que están en instancias diferentes ◦ No soporta transacciones que involucren varias claves ◦ El manejo de datos es complejo cuando se usa sharding ◦ Agregar o quitar nodos es complejo
  • 14. Caso de estudio - Redis Replicación ◦ Usa replicación asíncrona, con una configuración maestro-esclavo ◦ Un maestro puede tener varios esclavos ◦ Usa MVCC para la concurrencia, sin bloqueos del maestro o los esclavos ◦ Si un maestro falla (es inalcanzable) se promueve un esclavo como nuevo maestro ◦ Más información http://redis.io/topics/replication
  • 15. Caso de estudio – Redis Arquitectura  Todos los nodos se conectan directamente con los demás a través del “Redis Cluster Bus”  Usa gossip para la eliminación o ingreso de nuevos nodos (membresía) http://redis.io/topics/cluster-spec
  • 16. Caso de estudio – Redis Seguridad ◦ Diseñado para ser accedido por los clientes de confianza ◦ Si el acceso no es de confianza debe estar mediado por una capa de la aplicación de auditoria. ◦ Aunque no implementa control de acceso ofrece una capa de autenticación que se activa en el archivo redis.conf ◦ Redis no implementa cifrado de datos ◦ Es muy difícil la inyección de código por no tener código de escape
  • 17. Caso de estudio - Redis Tiene API’s para diferentes lenguajes ◦ PHP, ◦ Java, ◦ Python, ◦ Ruby, ◦ Perl, ◦ Scala, ◦ C, C++,Objective C, Node.js, ◦ Muchos más…
  • 18. Caso de estudio - Redis Algunos usos de Redis ◦ Mensajería ◦ Mostrar últimos artículos listados en su página principal. ◦ Supresión y filtrado. ◦ Tablas de clasificación y problemas relacionados ◦ Colas ◦ Análisis en tiempo real de lo que sucede, estadísticas, anti spam. ◦ Caching ◦ Muchos más ...
  • 19. Caso de estudio – Redis ¿Quién lo usa?
  • 20. Clave valor Investigar en Riak ◦ Tipos de datos y operaciones ◦ Arquitectura ◦ Fragmentación y replicación (técnicas) ◦ Seguridad ◦ Usos
  • 21. Cuando usar almacenes clave-valor Cuando la capacidad de almacenar y recuperar grandes volúmenes de datos es importante No es importante almacenar las relaciones entre los elementos La data es no estructurada Util para el desarrollo rápido de prototipos Manejo del crecimiento rápido de la lista de elementos: twitter, registros históricos de internet, blogs No se requiere la implementación de validaciones lógicas o restricciones de los datos en la BD
  • 22. Limitaciones de clave-valor Falta de estándares para el manejo de datos Lenguajes de consulta no son de alto nivel Herramientas para su uso y configuración Consultas y ordenamiento solamente por clave primaria
  • 23. Próxima clase BD NoSQL Documento: ◦ Modelo de datos ◦ Operaciones ◦ Técnicas usadas ◦ Caso de estudio