SlideShare a Scribd company logo
1 of 70
Bd NoSQL
Técnicas III
PROFA. MERCY OSPINA
mercy.ospinat@gmail.com
Agenda
Disponibilidad
Consenso
Partición
Replicación
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Se mantiene una lista de versiones antiguas:
◦ Versiones tentativas: registradas por las operaciones de
escritura y son invisibles para las demás transacciones.
◦ Versiones consumadas: cuando la transacción que creó la
versión termina exitosamente.
Esta lista representa la historia de los valores del objeto
Cada versión tiene:
◦ Una marca de tiempo de lectura: la mayor marca de tiempo de
las transacciones que han leído el objeto
◦ Una marca de tiempo de escritura: La marca de tiempo de la
transacción que creó la versión del objeto
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Si se realiza una operación de lectura por Ti sobre D
◦ Se lee la versión consumada con MT_escritura(D) mas
grande menor que MT(Ti).
◦ Se actualiza la MT_lectura(D) al máximo entre ella y la
MT(Ti).
Cuando una operación de lectura llega tarde se le
permite leer de una versión antigua ya consumada,
por lo que no se rechaza.
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Si se realiza una operación de escritura sobre D por
Ti
◦ Se dirige a la versión consumada más reciente del objeto D
◦ Si MT_lectura(D) < MT(Ti)
◦ Realiza la operación de escritura de una versión tentativa de D con la
MT_escritura(D)=MT(Ti)=MT_lectura(D)
◦ Si no
◦ Se rechaza la operación y se cancela la transacción Ti.
Si una transacción se aborta todas las versiones que
creó se eliminan.
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Cuando una transacción termina exitosamente todas
sus versiones se mantienen, pero de cuando en
cuando se deben borrar las versiones antiguas.
Solo se replica la ultima versión del objeto
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Nodo del dato
A
Versión Valor MT
lectura
MT
escritura
1 3 1 2
Leer(A),3
Leer(A),4
Leer(A),2
Escribir(A=8),6 Escribir(A=10),5
Ordenación con marcas de tiempo
multiversión MVCC Reed (1983)
Nodo del dato
A
Versión Valor MT
lectura
MT
escritura
1 3 1, 3 2
2 8 6 6
Leer(A),3
Leer(A),7
Leer(A),2
Escribir(A=8),6 Escribir(A=10),5
La
MT_lectura
es mayor
Elección
Algoritmos en que un proceso cumple un rol particular.
Caída del proceso coordinador
◦ Cualquier otro par podría tomar su rol
◦ Pero todos deben estar de acuerdo
◦ La selección del proceso elegido debe ser única
Cualquier proceso pi que detecte la desaparición del
coordinador puede iniciar la elección
◦ Podrá haber N elecciones simultaneas
◦ pi tiene una variable: participante o no-participante
◦ pii tiene una variable: electedi, con el líder elegido por pi, o el
valor null
Elección Basado en Anillo
Cualquier proceso puede comenzar la elección y envía un mensaje de
elección a su vecino con su identificador y se marca como participante
Cuando un proceso recibe un mensaje de elección compara el
identificador del mensaje con el suyo:
◦ Si es mayor reenvía el mensaje al siguiente
◦ Si es menor y no es un participante sustituye el identificador del mensaje por el suyo y lo
reenvía.
◦ Si es menor y es un participante no lo reenvía
◦ Cuando se reenvía un mensaje, el proceso se marca como participante
Cuando un proceso recibe un identificador con su número y es el mayor se
elige como coordinador
El coordinador notifica al resto
Elección Anillo
Inicialmente, ∀𝑖; 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑖 = 𝐹𝐴𝐿𝑆𝐸
Cuando pi inicia una elección
◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑖 = 𝑇𝑅𝑈𝐸
◦ Agrega id i a un mensaje elección, y lo envía a VECINO(P)
Cuando pj recibe un mensaje election con id k
◦ IF id j > id k
◦ IF 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝐹𝐴𝐿𝑆𝐸
◦ Reenvía mensaje election, pero con id j
◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝑇𝑅𝑈𝐸
◦ ELSE
◦ Reemplaza idk por idj , pero no reenvía
◦ ELSE IF id j < id k
◦ Reenvía mensaje election
◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝑇𝑅𝑈𝐸
◦ ELSE (id j == idk )
◦ Envía mensaje elected con id j
◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝐹𝐴𝐿𝑆𝐸
◦ electedj = id j
Elección
Algoritmo del matón o abusón (bully) Investigar
Algoritmo del matón
Premisas
◦ El sistema es síncrono y utiliza tiempo de espera para la
identificación de fallos en los procesos.
◦ Se permite que los procesos se bloqueen/caigan durante la
ejecución del algoritmo.
◦ La entrega de mensajes entre procesos se supone fiable.
◦ Los IDs de los procesos deben ser conocidos.
Comparado con el Algoritmo en Anillo:
◦ Se supone que el sistema es síncrono.
◦ Utiliza el tiempo de espera para detectar fallos/caídas en los
procesos.
◦ Cada proceso conoce qué procesos tienen el ID más alto que el
suyo y puede comunicarse con ellos.1
Algoritmo del Matón
Tipos de mensaje
◦ Mensaje de Elección: Enviados para comunicar que se va a
seleccionar un nuevo coordinador.
◦ Mensaje de Respuesta: Encargados de responder al
mensaje de elección.
◦ Mensaje de Coordinador: Enviado para comunicar el ID del
proceso seleccionado.
Algoritmo del Matón
Algoritmo del Matón
Consenso
Objetivo: que un conjunto de procesos se pongan de
acuerdo en una determinada acción o valor.
Un servicio de consenso consta de
◦ Un conjunto de N procesos que deben tener una visión
consensuada de un determinado objeto, valor o acción
◦ Clientes que envían peticiones a los procesos para proponer un
valor
Un protocolo de consenso es correcto sii:
◦ Todos los nodos deciden el mismo valor (seguridad)
◦ El valor decidido debe haber sido propuesto por algún nodo
◦ Todos los nodos deciden el valor en el algún momento
(terminación)
Consenso
Paxos
Consenso para replicación (investigar sloopy
quorum &hinted handoff)
Consenso - Paxos
Propuesto por Lamport (1989)
Es un algoritmo que permite llegar a consensos
en sistemas distribuidos.
Todos los nodos alcanzan consenso a pesar de fallos
en los nodos, particiones de red y retrasos en la
entrega de mensajes
Consenso - Paxos
Roles
◦ Cliente: emite una petición al sistema distribuido, y espera
una respuesta.
◦ Proponente: media por una petición del cliente, tratando
de convencer a los aceptadores para que se pongan de
acuerdo sobre el mismo ratificando un valor propuesto, y
actúan como un coordinador para seguir adelante con el
protocolo cuando se producen conflictos.
Consenso - Paxos
Roles
◦ Aceptadores: actúan como la “memoria” con tolerancia a
fallos del protocolo. Los aceptadores forman grupos
llamados Quórums. Cualquier mensaje enviado a un
aceptador debe ser enviado a un Quórum de aceptadores.
◦ Aprendiz: actúan como el factor de replicación para el
protocolo. Una vez que la petición del cliente ha sido
acordada por los Aceptadores, el aprendiz puede tomar
acción (es decir, ejecutar la petición y enviar una respuesta
al cliente).
Consenso - Paxos
Basado en Quorum:
◦ Solo es necesario que el valor sea aceptado por mayoría
simple
Consenso - Paxos
Proponente
Proponente
Aceptador
Aceptador
Aceptador
Aprendiz
Fase 1: PREPARE/PROMISE
Uno o más nodos deciden ser coordinador
(proponente)
El nodo proponente propone un valor y solicita la
aceptación de un conjunto de nodos aceptadores con
un mensaje multicast
◦ PREPARE (N)
◦ N: Las propuestas van ordenadas con un número de
propuesta único
Fase 1: PREPARE/PROMISE
Fase 1: PREPARE/PROMISE
Si un nodo aceptador recibe una petición PREPARE
(N) con N mayor a cualquier otra petición recibida
entonces contesta
◦ PROMISE(n’,v)
◦ Con la promesa de no aceptar otra petición con un numero
menor que N
◦ N’ Es el número de la propuesta aceptada antes
◦ V valor de la propuesta, null si no se ha recibido ninguno
Fase 1: PREPARE/PROMISE
Fase 1: PREPARE/PROMISE
Fase 2: ACCEPT/ACCEPTED
El proponente A cree que es el líder
◦ Recibió 2/3 mensajes de aceptación
El proponente B también cree que es el líder
◦ Recibió 3/3 mensajes de aceptación
Ambos generan su propio valor
◦ Todos los aceptadores han recibido el número de
propuesta máximo N=4, por lo tanto ignoran los mensajes
del proponente A
Fase 2: ACCEPT/ACCEPTED
Fase 2: ACCEPT/ACCEPTED
Los aceptadores aceptan el valor del proponente B y
envían un mensaje de aceptación al aprendiz con el
valor aceptado
◦ ACCEPTED(v)
El aprendiz (learner) envía el valor decidido a todos
los nodos
◦ DECIDED (v)
Fase 2: ACCEPT/ACCEPTED
Usos de Paxos
Google: Chubby (servicio de cerrojos distribuido
basado en Paxos)
◦ Bigtable y otros servicios de Google utilizan Chubby
Yahoo: ZooKeeper (servicio de cerrojos distribuido
basado en Paxos)
Propiedades de paxos
Seguridad: si se alcanza consenso, todos los nodos
acuerdan el mismo valor
Tolerancia a fallos: si menos de la mitad de los nodos
fallan, el resto alcanza acuerdo
Terminación no garantizada en casos muy
improbables en el mundo real
Elección de coordinador
Replicación
Modelos de replicación
◦ Modelo síncrono
◦ Modelo asíncrono
Variantes
◦ Copia primaria
◦ Basado en quorums
Replicación – Modelo Síncrono
Actualizaciones síncronas: se difunden
atómicamente a todas las réplicas
Consistencia serial: Exigencia de que
una operación sea procesada en
todas las réplicas en el mismo orden
en que se ejecutaron, antes de
retornar
Esto da lugar a:
• Baja disponibilidad en
actualizaciones
• Tiempos de respuesta muy altos
Replicación – Modelo Asíncrono
Localidad de operaciones:
◦ Cada cliente se comunica únicamente con el servidor local
(el más próximo) y recibe una respuesta inmediata
◦ Actualizaciones asíncronas: los servidores replicados
cotillean entre si (protocolo gossip) las actualizaciones
entre ellos de manera asíncrona o diferida.
Diseminación de datos basada
en gossip
Basado en el comportamiento epidémico (como se
propagan las enfermedades.
Se asume que todas las actualizaciones de un dato se
inician en un nodo.
Propagación:
◦ Un nodo integrante de un grupo de actualización que mantiene
información que vale la pena propagar se dice que está
infectado
◦ Un nodo que aun no ha visto esta información es susceptible
◦ Un nodo que no esté dispuesto o no pueda propagar la
información será eliminado.
Diseminación de datos basada
en gossip
Antientropía: P elige al azar a otro nodo Q, y
posteriormente intercambia información con Q:
◦ P solo empuja (push) sus actualizaciones hacia Q
◦ P solo jala (pull) nuevas actualizaciones desde Q
◦ P y Q se envían actualizaciones entre sí (push-pull)
Propagación de rumores (gossiping)
◦ P se acaba de actualizar con el elemento de datos X
◦ P contacta a Q e intenta empujar la actualización a Q
◦ Es posible que Q ya haya sido actualizado previamente
◦ P pierde el interés en difundir la actualización con una
probabilidad de 1/k (la actualización se elimina)
Diseminación de datos basada
en gossip
Analogía a la vida real
◦ Javier se entera de un rumor y quiere contarlo, contacta a
Alicia para decírselo
◦ Alicia contacta a Pedro, pero Pedro ya lo sabía, Alicia se
desilusiona y deja de contar el rumor ¿Para que llama a
otros amigos si ya saben el chisme?
Consideraciones
◦ El gossiping es excelente para difundir información
◦ No garantiza que todos los nodos serán actualizados
◦ Si se aplica antientropía se logra la actualización completa.
Replicación – Copia primaria
◦ Actualizaciones: todas las peticiones de actualización se
dirigen a la misma réplica que es la que guarda la copia
actualizada. La copia primaria se encarga de mantener
réplicas esclavas
◦ Consultas: las peticiones de consulta pueden dirigirse a
cualquier réplica
Replicación basado en quórums
Se definen dos operaciones READ y WRITE
Hay un conjunto de N nodos, que sirven peticiones
◦ Un READ debe realizarse sobre R copias
◦ Un WRITE debe realizarse sobre W copias
◦ Cada réplica tiene un número de versión V
◦ Debe cumplirse que:
◦ R + W > N
◦ W + W > N
◦ R, W < N
Replicación basado en quórums
Hay un conjunto de N nodos, que sirven peticiones
◦ R numero de copias de lectura
◦ W número de copias de escritura
◦ Cada réplica tiene un número de versión V
◦ Debe cumplirse que:
◦ R + W > N
◦ W + W > N
◦ R, W < N
Replicación basado en quórums
READ (Consulta)
◦ Se lee de R réplicas, se queda con la copia con la última
versión
WRITE (Escritura)
◦ Hay que asegurarse que todas las réplicas se comportan
como una sola (seriabilidad)
◦ Se calcula el nuevo número de versión actual.
◦ Se actualizar el valor y el número de versión en W o más
réplicas.
Replicación basado en quórums
Ejemplo: n= 5, w=3, r=3
Replicación basado en quórums
Variante Sloopy quorum
En este modelo se toma en cuenta la latencia de las
operaciones de lectura o escritura en las réplicas y se
calcula en base a la más lenta de R o de W
Por esta razón se configura
◦ R + W <N, en lugar del esquema clásico R + W >N
◦ o R + W > N’ donde N’ son los nodos saludables (que no
fallan) del conjunto de réplicas del dato
Todas las operaciones de lectura y escritura se realizan en
los primeros N’ nodos saludables de la lista de
preferencias, que no siempre pueden ser los primeros
nodos N del clúster (quorum descuidado)
Dynamo Amazon
Replicación basado en quórums
Variante Sloopy quorum
Sin embargo este modelo puede dar lugar a
inconsistencias , por ejemplo
Por ejemplo, si N’ es igual a 3 tres en un clúster de
cinco nodos (A, B, C, D y E) y los nodos A, B y C son
los tres principales nodos preferidos, luego se harán
escrituras en nodos A, B y C.
Pero si B y C no están disponibles el sistema
escribirá en D y E en su lugar
Replicación basado en quórums
Variante Sloopy quorum
Entonces si R es 2, se cumple R + W >N’, e
inmediatamente se leen B y C, estos no se
interceptan con los nodos que actualizaron que son
A, D y E
write (op1)
0
0B
C
1
1
1A
D
E
read (op2)
0
0B
C
1
1
1A
D
E
Replicación basado en quórums
Hinted handff
Las BD NoSQL usan sloopy quorum indican que mitigan
este problema usando hinted handoff (Transferencias
insinuadas o indicios de trasferencias)
Si el sistema tuvo que escribir en los nodos D y E en lugar
de los nodos B y C
◦ D informa que su escritura era para B
◦ E informa que su escritura era para C
◦ D y E mantienen esta información en
un almacén temporal y periodicamente
sondean a B y C para su disponibilidad
◦ Una vez B y C estén disponibles D y E
envían los valores
0
0B
C
1
1
1A
D
E
0
0
1
1
Replicación basado en quórums
Hinted handff
A Little Riak Book, Eric Redmond & John Daily, 2.0.0 2014-10-15
Replicación basado en quórums
Paxos Google Chubby
Aceptadores: Servidores de réplicas
Aprendizes: Diseminan el valor aprendido a las
demas réplicas
Tecnicas de Sharding
Sharding manual
Problema
◦ No hay garantía de que los datos sean distribuidos de
manera uniforme (sesgo)
◦ Ante el fallo de un nodo es muy difícil redistribuir los
nodos.
Ventajas
◦ Las consultas son mas rápidas (tomar en cuenta que en
estos sistemas de BD la mayoría de las consultas son sobre
la clave)
Técnicas de Sharding
Sharding automático:
◦ Los datos son revisados por una distribución uniforme
◦ Los datos son accedidos desde cualquier nodo mediante un
algoritmo que dirige la solicitud al nodo particular
◦ Mas fácil rebalancear los datos
Desventaja
◦ Las consultas pueden ser mas lentas si no se cuenta con
índices
Técnicas de Sharding
Usando Intervalos o rangos de claves
◦ Usada por MongoDB y Hbase
◦ El manejo de fallas se hace a través de las réplicas que
garantizan que los datos estén en los nodos activos
Nodo 1 Nodo 2 Nodo 3 Nodo 4
Key Range
0..25
Key Range
26..50
Key Range
51..75
Key Range
76.. 100
Técnicas de Sharding
Hashing Consistente o tablas hash distribuidas:
◦ La consulta se puede iniciar en cualquier nodo
◦ Los nodos están configurados en un anillo lógico
◦ A los elementos de datos se les asigna una clave aleatoria
en un espacio grande.
◦ A los nodos se les asigna un número aleatorio en el mismo
espacio identificador
◦ El sistema mapeará cada elemento de datos con un
identificador de nodo.
◦ Cada nodo podrá recibir cualquier petición y enrutarla al
nodo correspondiente
Ejemplo: Chord
Ejemplo: Chord o cuerdas
A cada nodo se le asigna un identificador único en un
espacio m
Los nodos se organizan en un anillo lógico de tamaño N
(numero de nodos) tal que
◦ k + N << 2m .
Cada nodo tiene una tabla de enrutamiento con m
entradas.
◦ k se mapea hacia el nodo con el identificador más pequeño
id>=k.
◦ Este nodo se conoce como el sucesor de la clave k =>succ(k)
Ejemplo: Chord
Cómo recorrer e anillo
Cell Index
Referenced
GUID
GUID Distance
0 1 1 (20)
1 2 2 (21)
2 4 4 (22)
3 8 8 (23)
Ejemplo: Chord
Cómo recorrer e anillo
Ejemplo: Chord
Cómo recorrer e anillo
Ir del nodo o al nodo
15 usando las tablas
de enrutamiento
http://tutorials.jenkov.com/p2p/index.html
Ejemplo de tablas de
enrutamiento: Finger tables
Cada nodo almacena información acerca de sólo un
pequeño número de otros nodos.
Una Tabla finger de un nodo en general no contiene
suficiente información para determinar el sucesor
de una clave k arbitraria
Consultas repetitivas a los nodos que preceden
inmediatamente a la clave dada conducirán al
sucesor de la clave con el tiempo
Ejemplo: Chord o cuerdas
El objetivo es resolver de manera eficiente una clave
k para la dirección succ(k)
si FTp denota la tabla de enrutamiento o tabla finger
dentro del nodo, entonces
FTp[i]=succ(p+2i-1)
Si un nodo p recibe una petición para resolver una
clave k, reenviará la petición de inmediato al nodo q
con índice j en la FTp tal que
q=FTp[j] ≤ k < FTp[j+1]
63
Finger Tables (1)
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
0
0
0
finger table
start int. succ.
keys
6
El primer sucesor del
nodo 0 es el 1, quien
es responsable de
las claves 1≤ k <2
Manejo de inconsistencias:
Finger tables
Un Protocolo de "estabilización" básico es utilizado
para mantener los apuntadores a los nodos
sucesores “al día”, lo cual es suficiente para
garantizar la exactitud de las búsquedas
Estos apuntadores a sucesores pueden usarse para
verificar las entradas de la tabla finger
Cada nodo ejecuta stabilize periódicamente para
encontrar nodos que se unieron recientemente al
anillo o que lo abandonaron.
65
Unión del nodo 6 – con Finger
Tables
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
0
0
0
finger table
start int. succ.
keys
6
66
Unión del nodo 6 – con Finger
Tables
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
0
0
0
finger table
start int. succ.
keys
finger table
start int. succ.
keys
7
0
2
[7,0)
[0,2)
[2,6)
0
0
3
6
6
6
6
6
67
Unión del nodo 6 – con Finger
Tables
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
0
0
0
finger table
start int. succ.
keys
6
finger table
start int. succ.
keys
7
0
2
[7,0)
[0,2)
[2,6)
0
0
3
6
6
6
6
7
68
Salida del nodo 1– con Finger
Tables
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
6
6
0
finger table
start int. succ.
keys
finger table
start int. succ.
keys
7
0
2
[7,0)
[0,2)
[2,6)
0
0
3
6
6
6
0
3
7
69
Búsqueda de claves – con Finger
Tables
0
4
26
5
1
3
7
1
2
4
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int. succ.
keys
1
2
3
5
[2,3)
[3,5)
[5,1)
3
3
0
finger table
start int. succ.
keys
2
4
5
7
[4,5)
[5,7)
[7,3)
6
6
0
finger table
start int. succ.
keys
finger table
start int. succ.
keys
7
0
2
[7,0)
[0,2)
[2,3)
0
0
3
6
6
6
0
7
Si en el nodo 0 se consulta la clave 5
1. Se consulta la finger table y el
sucesor 6 tiene las claves
mayores que 4
2. El nodo 6 tiene la clave buscada
Próxima clase
Exámen
BD NoSQL Clave – Valor:
◦ Modelo de datos
◦ Operaciones
◦ Técnicas usadas
◦ Caso de estudio

More Related Content

What's hot

Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasRene Guaman-Quinche
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaRene Guaman-Quinche
 
Resumen del articulo sobre retardo y perdida de paquetes en Internet
Resumen del articulo sobre retardo y perdida de paquetes en InternetResumen del articulo sobre retardo y perdida de paquetes en Internet
Resumen del articulo sobre retardo y perdida de paquetes en InternetLaura Piñeiro Mendez
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3Leonardo Moreno
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Eclipse refactoring
Eclipse refactoringEclipse refactoring
Eclipse refactoringsrcid
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socketRene Guaman-Quinche
 
Fundamentos de la Refactorización
Fundamentos de la RefactorizaciónFundamentos de la Refactorización
Fundamentos de la RefactorizaciónJavier Pérez
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en javaLuis Miguel De Bello
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: InstalaciónStratebi
 

What's hot (20)

Programacion en sockets informe
Programacion en sockets informeProgramacion en sockets informe
Programacion en sockets informe
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
 
Practica1
Practica1Practica1
Practica1
 
Practica de Redes
Practica de RedesPractica de Redes
Practica de Redes
 
Bitcoin es latam
Bitcoin es latamBitcoin es latam
Bitcoin es latam
 
2 unidad sistemas operativos
2 unidad sistemas operativos 2 unidad sistemas operativos
2 unidad sistemas operativos
 
PCJ Sesión 9: Threads
PCJ Sesión 9: ThreadsPCJ Sesión 9: Threads
PCJ Sesión 9: Threads
 
Resumen del articulo sobre retardo y perdida de paquetes en Internet
Resumen del articulo sobre retardo y perdida de paquetes en InternetResumen del articulo sobre retardo y perdida de paquetes en Internet
Resumen del articulo sobre retardo y perdida de paquetes en Internet
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3
 
Sockets en JAVA
Sockets en JAVASockets en JAVA
Sockets en JAVA
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
 
Concurrencia
ConcurrenciaConcurrencia
Concurrencia
 
Eclipse refactoring
Eclipse refactoringEclipse refactoring
Eclipse refactoring
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Fundamentos de la Refactorización
Fundamentos de la RefactorizaciónFundamentos de la Refactorización
Fundamentos de la Refactorización
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: Instalación
 

Viewers also liked

Viewers also liked (12)

Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentosConceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
 
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
 
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
 

Similar to Bd nosql tecnicas III

EL LIBRO BLANCO DEL BITCOIN
EL LIBRO BLANCO DEL BITCOINEL LIBRO BLANCO DEL BITCOIN
EL LIBRO BLANCO DEL BITCOINJulian581328
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Capa De Transporte
Capa De TransporteCapa De Transporte
Capa De Transportejosepoleo3
 
Protocolos y servicios informaticos
Protocolos y servicios informaticosProtocolos y servicios informaticos
Protocolos y servicios informaticosAlonso Almaraz
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
SQL11: Replicación
SQL11: ReplicaciónSQL11: Replicación
SQL11: ReplicaciónSolidQ
 
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...Codemotion
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesosPablo Hurtado
 
¿Cómo funciona la replicación en mongo db?
¿Cómo funciona la replicación en mongo db?¿Cómo funciona la replicación en mongo db?
¿Cómo funciona la replicación en mongo db?Gonzalo Ortiz Jaureguizar
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4ing_jlcarrillo
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastHector L
 

Similar to Bd nosql tecnicas III (20)

EL LIBRO BLANCO DEL BITCOIN
EL LIBRO BLANCO DEL BITCOINEL LIBRO BLANCO DEL BITCOIN
EL LIBRO BLANCO DEL BITCOIN
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
bitcoin_es.pdf
bitcoin_es.pdfbitcoin_es.pdf
bitcoin_es.pdf
 
DynamoDB, análisis del paper.
DynamoDB, análisis del paper.DynamoDB, análisis del paper.
DynamoDB, análisis del paper.
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Capa De Transporte
Capa De TransporteCapa De Transporte
Capa De Transporte
 
Protocolos y servicios informaticos
Protocolos y servicios informaticosProtocolos y servicios informaticos
Protocolos y servicios informaticos
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Unidad II
Unidad IIUnidad II
Unidad II
 
Networking
NetworkingNetworking
Networking
 
SQL11: Replicación
SQL11: ReplicaciónSQL11: Replicación
SQL11: Replicación
 
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...
Óscar Delgado | Hacking the blockchain for fun and profit | Codemotion Madrid...
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
¿Cómo funciona la replicación en mongo db?
¿Cómo funciona la replicación en mongo db?¿Cómo funciona la replicación en mongo db?
¿Cómo funciona la replicación en mongo db?
 
RPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTASRPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTAS
 
Capa de enlace de Datos
Capa de enlace de DatosCapa de enlace de Datos
Capa de enlace de Datos
 
Zookeeper
ZookeeperZookeeper
Zookeeper
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP Multicast
 
s.o.
s.o.s.o.
s.o.
 

More from 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
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
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
 
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
 

Recently uploaded

Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 

Recently uploaded (20)

Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 

Bd nosql tecnicas III

  • 1. Bd NoSQL Técnicas III PROFA. MERCY OSPINA mercy.ospinat@gmail.com
  • 3. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Se mantiene una lista de versiones antiguas: ◦ Versiones tentativas: registradas por las operaciones de escritura y son invisibles para las demás transacciones. ◦ Versiones consumadas: cuando la transacción que creó la versión termina exitosamente. Esta lista representa la historia de los valores del objeto Cada versión tiene: ◦ Una marca de tiempo de lectura: la mayor marca de tiempo de las transacciones que han leído el objeto ◦ Una marca de tiempo de escritura: La marca de tiempo de la transacción que creó la versión del objeto
  • 4. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Si se realiza una operación de lectura por Ti sobre D ◦ Se lee la versión consumada con MT_escritura(D) mas grande menor que MT(Ti). ◦ Se actualiza la MT_lectura(D) al máximo entre ella y la MT(Ti). Cuando una operación de lectura llega tarde se le permite leer de una versión antigua ya consumada, por lo que no se rechaza.
  • 5. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Si se realiza una operación de escritura sobre D por Ti ◦ Se dirige a la versión consumada más reciente del objeto D ◦ Si MT_lectura(D) < MT(Ti) ◦ Realiza la operación de escritura de una versión tentativa de D con la MT_escritura(D)=MT(Ti)=MT_lectura(D) ◦ Si no ◦ Se rechaza la operación y se cancela la transacción Ti. Si una transacción se aborta todas las versiones que creó se eliminan.
  • 6. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Cuando una transacción termina exitosamente todas sus versiones se mantienen, pero de cuando en cuando se deben borrar las versiones antiguas. Solo se replica la ultima versión del objeto
  • 7. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Nodo del dato A Versión Valor MT lectura MT escritura 1 3 1 2 Leer(A),3 Leer(A),4 Leer(A),2 Escribir(A=8),6 Escribir(A=10),5
  • 8. Ordenación con marcas de tiempo multiversión MVCC Reed (1983) Nodo del dato A Versión Valor MT lectura MT escritura 1 3 1, 3 2 2 8 6 6 Leer(A),3 Leer(A),7 Leer(A),2 Escribir(A=8),6 Escribir(A=10),5 La MT_lectura es mayor
  • 9. Elección Algoritmos en que un proceso cumple un rol particular. Caída del proceso coordinador ◦ Cualquier otro par podría tomar su rol ◦ Pero todos deben estar de acuerdo ◦ La selección del proceso elegido debe ser única Cualquier proceso pi que detecte la desaparición del coordinador puede iniciar la elección ◦ Podrá haber N elecciones simultaneas ◦ pi tiene una variable: participante o no-participante ◦ pii tiene una variable: electedi, con el líder elegido por pi, o el valor null
  • 10. Elección Basado en Anillo Cualquier proceso puede comenzar la elección y envía un mensaje de elección a su vecino con su identificador y se marca como participante Cuando un proceso recibe un mensaje de elección compara el identificador del mensaje con el suyo: ◦ Si es mayor reenvía el mensaje al siguiente ◦ Si es menor y no es un participante sustituye el identificador del mensaje por el suyo y lo reenvía. ◦ Si es menor y es un participante no lo reenvía ◦ Cuando se reenvía un mensaje, el proceso se marca como participante Cuando un proceso recibe un identificador con su número y es el mayor se elige como coordinador El coordinador notifica al resto
  • 11. Elección Anillo Inicialmente, ∀𝑖; 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑖 = 𝐹𝐴𝐿𝑆𝐸 Cuando pi inicia una elección ◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑖 = 𝑇𝑅𝑈𝐸 ◦ Agrega id i a un mensaje elección, y lo envía a VECINO(P) Cuando pj recibe un mensaje election con id k ◦ IF id j > id k ◦ IF 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝐹𝐴𝐿𝑆𝐸 ◦ Reenvía mensaje election, pero con id j ◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝑇𝑅𝑈𝐸 ◦ ELSE ◦ Reemplaza idk por idj , pero no reenvía ◦ ELSE IF id j < id k ◦ Reenvía mensaje election ◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝑇𝑅𝑈𝐸 ◦ ELSE (id j == idk ) ◦ Envía mensaje elected con id j ◦ 𝑝𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑛𝑡𝑗 = 𝐹𝐴𝐿𝑆𝐸 ◦ electedj = id j
  • 12. Elección Algoritmo del matón o abusón (bully) Investigar
  • 13. Algoritmo del matón Premisas ◦ El sistema es síncrono y utiliza tiempo de espera para la identificación de fallos en los procesos. ◦ Se permite que los procesos se bloqueen/caigan durante la ejecución del algoritmo. ◦ La entrega de mensajes entre procesos se supone fiable. ◦ Los IDs de los procesos deben ser conocidos. Comparado con el Algoritmo en Anillo: ◦ Se supone que el sistema es síncrono. ◦ Utiliza el tiempo de espera para detectar fallos/caídas en los procesos. ◦ Cada proceso conoce qué procesos tienen el ID más alto que el suyo y puede comunicarse con ellos.1
  • 14. Algoritmo del Matón Tipos de mensaje ◦ Mensaje de Elección: Enviados para comunicar que se va a seleccionar un nuevo coordinador. ◦ Mensaje de Respuesta: Encargados de responder al mensaje de elección. ◦ Mensaje de Coordinador: Enviado para comunicar el ID del proceso seleccionado.
  • 17. Consenso Objetivo: que un conjunto de procesos se pongan de acuerdo en una determinada acción o valor. Un servicio de consenso consta de ◦ Un conjunto de N procesos que deben tener una visión consensuada de un determinado objeto, valor o acción ◦ Clientes que envían peticiones a los procesos para proponer un valor Un protocolo de consenso es correcto sii: ◦ Todos los nodos deciden el mismo valor (seguridad) ◦ El valor decidido debe haber sido propuesto por algún nodo ◦ Todos los nodos deciden el valor en el algún momento (terminación)
  • 18. Consenso Paxos Consenso para replicación (investigar sloopy quorum &hinted handoff)
  • 19. Consenso - Paxos Propuesto por Lamport (1989) Es un algoritmo que permite llegar a consensos en sistemas distribuidos. Todos los nodos alcanzan consenso a pesar de fallos en los nodos, particiones de red y retrasos en la entrega de mensajes
  • 20. Consenso - Paxos Roles ◦ Cliente: emite una petición al sistema distribuido, y espera una respuesta. ◦ Proponente: media por una petición del cliente, tratando de convencer a los aceptadores para que se pongan de acuerdo sobre el mismo ratificando un valor propuesto, y actúan como un coordinador para seguir adelante con el protocolo cuando se producen conflictos.
  • 21. Consenso - Paxos Roles ◦ Aceptadores: actúan como la “memoria” con tolerancia a fallos del protocolo. Los aceptadores forman grupos llamados Quórums. Cualquier mensaje enviado a un aceptador debe ser enviado a un Quórum de aceptadores. ◦ Aprendiz: actúan como el factor de replicación para el protocolo. Una vez que la petición del cliente ha sido acordada por los Aceptadores, el aprendiz puede tomar acción (es decir, ejecutar la petición y enviar una respuesta al cliente).
  • 22. Consenso - Paxos Basado en Quorum: ◦ Solo es necesario que el valor sea aceptado por mayoría simple
  • 24. Fase 1: PREPARE/PROMISE Uno o más nodos deciden ser coordinador (proponente) El nodo proponente propone un valor y solicita la aceptación de un conjunto de nodos aceptadores con un mensaje multicast ◦ PREPARE (N) ◦ N: Las propuestas van ordenadas con un número de propuesta único
  • 26. Fase 1: PREPARE/PROMISE Si un nodo aceptador recibe una petición PREPARE (N) con N mayor a cualquier otra petición recibida entonces contesta ◦ PROMISE(n’,v) ◦ Con la promesa de no aceptar otra petición con un numero menor que N ◦ N’ Es el número de la propuesta aceptada antes ◦ V valor de la propuesta, null si no se ha recibido ninguno
  • 29. Fase 2: ACCEPT/ACCEPTED El proponente A cree que es el líder ◦ Recibió 2/3 mensajes de aceptación El proponente B también cree que es el líder ◦ Recibió 3/3 mensajes de aceptación Ambos generan su propio valor ◦ Todos los aceptadores han recibido el número de propuesta máximo N=4, por lo tanto ignoran los mensajes del proponente A
  • 31. Fase 2: ACCEPT/ACCEPTED Los aceptadores aceptan el valor del proponente B y envían un mensaje de aceptación al aprendiz con el valor aceptado ◦ ACCEPTED(v) El aprendiz (learner) envía el valor decidido a todos los nodos ◦ DECIDED (v)
  • 33. Usos de Paxos Google: Chubby (servicio de cerrojos distribuido basado en Paxos) ◦ Bigtable y otros servicios de Google utilizan Chubby Yahoo: ZooKeeper (servicio de cerrojos distribuido basado en Paxos)
  • 34. Propiedades de paxos Seguridad: si se alcanza consenso, todos los nodos acuerdan el mismo valor Tolerancia a fallos: si menos de la mitad de los nodos fallan, el resto alcanza acuerdo Terminación no garantizada en casos muy improbables en el mundo real Elección de coordinador
  • 35. Replicación Modelos de replicación ◦ Modelo síncrono ◦ Modelo asíncrono Variantes ◦ Copia primaria ◦ Basado en quorums
  • 36. Replicación – Modelo Síncrono Actualizaciones síncronas: se difunden atómicamente a todas las réplicas Consistencia serial: Exigencia de que una operación sea procesada en todas las réplicas en el mismo orden en que se ejecutaron, antes de retornar Esto da lugar a: • Baja disponibilidad en actualizaciones • Tiempos de respuesta muy altos
  • 37. Replicación – Modelo Asíncrono Localidad de operaciones: ◦ Cada cliente se comunica únicamente con el servidor local (el más próximo) y recibe una respuesta inmediata ◦ Actualizaciones asíncronas: los servidores replicados cotillean entre si (protocolo gossip) las actualizaciones entre ellos de manera asíncrona o diferida.
  • 38. Diseminación de datos basada en gossip Basado en el comportamiento epidémico (como se propagan las enfermedades. Se asume que todas las actualizaciones de un dato se inician en un nodo. Propagación: ◦ Un nodo integrante de un grupo de actualización que mantiene información que vale la pena propagar se dice que está infectado ◦ Un nodo que aun no ha visto esta información es susceptible ◦ Un nodo que no esté dispuesto o no pueda propagar la información será eliminado.
  • 39. Diseminación de datos basada en gossip Antientropía: P elige al azar a otro nodo Q, y posteriormente intercambia información con Q: ◦ P solo empuja (push) sus actualizaciones hacia Q ◦ P solo jala (pull) nuevas actualizaciones desde Q ◦ P y Q se envían actualizaciones entre sí (push-pull) Propagación de rumores (gossiping) ◦ P se acaba de actualizar con el elemento de datos X ◦ P contacta a Q e intenta empujar la actualización a Q ◦ Es posible que Q ya haya sido actualizado previamente ◦ P pierde el interés en difundir la actualización con una probabilidad de 1/k (la actualización se elimina)
  • 40. Diseminación de datos basada en gossip Analogía a la vida real ◦ Javier se entera de un rumor y quiere contarlo, contacta a Alicia para decírselo ◦ Alicia contacta a Pedro, pero Pedro ya lo sabía, Alicia se desilusiona y deja de contar el rumor ¿Para que llama a otros amigos si ya saben el chisme? Consideraciones ◦ El gossiping es excelente para difundir información ◦ No garantiza que todos los nodos serán actualizados ◦ Si se aplica antientropía se logra la actualización completa.
  • 41. Replicación – Copia primaria ◦ Actualizaciones: todas las peticiones de actualización se dirigen a la misma réplica que es la que guarda la copia actualizada. La copia primaria se encarga de mantener réplicas esclavas ◦ Consultas: las peticiones de consulta pueden dirigirse a cualquier réplica
  • 42. Replicación basado en quórums Se definen dos operaciones READ y WRITE Hay un conjunto de N nodos, que sirven peticiones ◦ Un READ debe realizarse sobre R copias ◦ Un WRITE debe realizarse sobre W copias ◦ Cada réplica tiene un número de versión V ◦ Debe cumplirse que: ◦ R + W > N ◦ W + W > N ◦ R, W < N
  • 43. Replicación basado en quórums Hay un conjunto de N nodos, que sirven peticiones ◦ R numero de copias de lectura ◦ W número de copias de escritura ◦ Cada réplica tiene un número de versión V ◦ Debe cumplirse que: ◦ R + W > N ◦ W + W > N ◦ R, W < N
  • 44. Replicación basado en quórums READ (Consulta) ◦ Se lee de R réplicas, se queda con la copia con la última versión WRITE (Escritura) ◦ Hay que asegurarse que todas las réplicas se comportan como una sola (seriabilidad) ◦ Se calcula el nuevo número de versión actual. ◦ Se actualizar el valor y el número de versión en W o más réplicas.
  • 45. Replicación basado en quórums Ejemplo: n= 5, w=3, r=3
  • 46. Replicación basado en quórums Variante Sloopy quorum En este modelo se toma en cuenta la latencia de las operaciones de lectura o escritura en las réplicas y se calcula en base a la más lenta de R o de W Por esta razón se configura ◦ R + W <N, en lugar del esquema clásico R + W >N ◦ o R + W > N’ donde N’ son los nodos saludables (que no fallan) del conjunto de réplicas del dato Todas las operaciones de lectura y escritura se realizan en los primeros N’ nodos saludables de la lista de preferencias, que no siempre pueden ser los primeros nodos N del clúster (quorum descuidado) Dynamo Amazon
  • 47. Replicación basado en quórums Variante Sloopy quorum Sin embargo este modelo puede dar lugar a inconsistencias , por ejemplo Por ejemplo, si N’ es igual a 3 tres en un clúster de cinco nodos (A, B, C, D y E) y los nodos A, B y C son los tres principales nodos preferidos, luego se harán escrituras en nodos A, B y C. Pero si B y C no están disponibles el sistema escribirá en D y E en su lugar
  • 48. Replicación basado en quórums Variante Sloopy quorum Entonces si R es 2, se cumple R + W >N’, e inmediatamente se leen B y C, estos no se interceptan con los nodos que actualizaron que son A, D y E write (op1) 0 0B C 1 1 1A D E read (op2) 0 0B C 1 1 1A D E
  • 49. Replicación basado en quórums Hinted handff Las BD NoSQL usan sloopy quorum indican que mitigan este problema usando hinted handoff (Transferencias insinuadas o indicios de trasferencias) Si el sistema tuvo que escribir en los nodos D y E en lugar de los nodos B y C ◦ D informa que su escritura era para B ◦ E informa que su escritura era para C ◦ D y E mantienen esta información en un almacén temporal y periodicamente sondean a B y C para su disponibilidad ◦ Una vez B y C estén disponibles D y E envían los valores 0 0B C 1 1 1A D E 0 0 1 1
  • 50. Replicación basado en quórums Hinted handff A Little Riak Book, Eric Redmond & John Daily, 2.0.0 2014-10-15
  • 51. Replicación basado en quórums Paxos Google Chubby Aceptadores: Servidores de réplicas Aprendizes: Diseminan el valor aprendido a las demas réplicas
  • 52. Tecnicas de Sharding Sharding manual Problema ◦ No hay garantía de que los datos sean distribuidos de manera uniforme (sesgo) ◦ Ante el fallo de un nodo es muy difícil redistribuir los nodos. Ventajas ◦ Las consultas son mas rápidas (tomar en cuenta que en estos sistemas de BD la mayoría de las consultas son sobre la clave)
  • 53. Técnicas de Sharding Sharding automático: ◦ Los datos son revisados por una distribución uniforme ◦ Los datos son accedidos desde cualquier nodo mediante un algoritmo que dirige la solicitud al nodo particular ◦ Mas fácil rebalancear los datos Desventaja ◦ Las consultas pueden ser mas lentas si no se cuenta con índices
  • 54. Técnicas de Sharding Usando Intervalos o rangos de claves ◦ Usada por MongoDB y Hbase ◦ El manejo de fallas se hace a través de las réplicas que garantizan que los datos estén en los nodos activos Nodo 1 Nodo 2 Nodo 3 Nodo 4 Key Range 0..25 Key Range 26..50 Key Range 51..75 Key Range 76.. 100
  • 55. Técnicas de Sharding Hashing Consistente o tablas hash distribuidas: ◦ La consulta se puede iniciar en cualquier nodo ◦ Los nodos están configurados en un anillo lógico ◦ A los elementos de datos se les asigna una clave aleatoria en un espacio grande. ◦ A los nodos se les asigna un número aleatorio en el mismo espacio identificador ◦ El sistema mapeará cada elemento de datos con un identificador de nodo. ◦ Cada nodo podrá recibir cualquier petición y enrutarla al nodo correspondiente
  • 57. Ejemplo: Chord o cuerdas A cada nodo se le asigna un identificador único en un espacio m Los nodos se organizan en un anillo lógico de tamaño N (numero de nodos) tal que ◦ k + N << 2m . Cada nodo tiene una tabla de enrutamiento con m entradas. ◦ k se mapea hacia el nodo con el identificador más pequeño id>=k. ◦ Este nodo se conoce como el sucesor de la clave k =>succ(k)
  • 58. Ejemplo: Chord Cómo recorrer e anillo Cell Index Referenced GUID GUID Distance 0 1 1 (20) 1 2 2 (21) 2 4 4 (22) 3 8 8 (23)
  • 60. Ejemplo: Chord Cómo recorrer e anillo Ir del nodo o al nodo 15 usando las tablas de enrutamiento http://tutorials.jenkov.com/p2p/index.html
  • 61. Ejemplo de tablas de enrutamiento: Finger tables Cada nodo almacena información acerca de sólo un pequeño número de otros nodos. Una Tabla finger de un nodo en general no contiene suficiente información para determinar el sucesor de una clave k arbitraria Consultas repetitivas a los nodos que preceden inmediatamente a la clave dada conducirán al sucesor de la clave con el tiempo
  • 62. Ejemplo: Chord o cuerdas El objetivo es resolver de manera eficiente una clave k para la dirección succ(k) si FTp denota la tabla de enrutamiento o tabla finger dentro del nodo, entonces FTp[i]=succ(p+2i-1) Si un nodo p recibe una petición para resolver una clave k, reenviará la petición de inmediato al nodo q con índice j en la FTp tal que q=FTp[j] ≤ k < FTp[j+1]
  • 63. 63 Finger Tables (1) 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 0 0 0 finger table start int. succ. keys 6 El primer sucesor del nodo 0 es el 1, quien es responsable de las claves 1≤ k <2
  • 64. Manejo de inconsistencias: Finger tables Un Protocolo de "estabilización" básico es utilizado para mantener los apuntadores a los nodos sucesores “al día”, lo cual es suficiente para garantizar la exactitud de las búsquedas Estos apuntadores a sucesores pueden usarse para verificar las entradas de la tabla finger Cada nodo ejecuta stabilize periódicamente para encontrar nodos que se unieron recientemente al anillo o que lo abandonaron.
  • 65. 65 Unión del nodo 6 – con Finger Tables 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 0 0 0 finger table start int. succ. keys 6
  • 66. 66 Unión del nodo 6 – con Finger Tables 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 0 0 0 finger table start int. succ. keys finger table start int. succ. keys 7 0 2 [7,0) [0,2) [2,6) 0 0 3 6 6 6 6 6
  • 67. 67 Unión del nodo 6 – con Finger Tables 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 0 0 0 finger table start int. succ. keys 6 finger table start int. succ. keys 7 0 2 [7,0) [0,2) [2,6) 0 0 3 6 6 6 6 7
  • 68. 68 Salida del nodo 1– con Finger Tables 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 6 6 0 finger table start int. succ. keys finger table start int. succ. keys 7 0 2 [7,0) [0,2) [2,6) 0 0 3 6 6 6 0 3 7
  • 69. 69 Búsqueda de claves – con Finger Tables 0 4 26 5 1 3 7 1 2 4 [1,2) [2,4) [4,0) 1 3 0 finger table start int. succ. keys 1 2 3 5 [2,3) [3,5) [5,1) 3 3 0 finger table start int. succ. keys 2 4 5 7 [4,5) [5,7) [7,3) 6 6 0 finger table start int. succ. keys finger table start int. succ. keys 7 0 2 [7,0) [0,2) [2,3) 0 0 3 6 6 6 0 7 Si en el nodo 0 se consulta la clave 5 1. Se consulta la finger table y el sucesor 6 tiene las claves mayores que 4 2. El nodo 6 tiene la clave buscada
  • 70. Próxima clase Exámen BD NoSQL Clave – Valor: ◦ Modelo de datos ◦ Operaciones ◦ Técnicas usadas ◦ Caso de estudio