SlideShare una empresa de Scribd logo
1 de 42
Bd NoSQL
Técnicas II
PROFA. MERCY OSPINA
mercy.ospinat@gmail.com
Agenda
Consistencia
Exclusión Mutua
Control de concurrencia
Disponibilidad
Elección y consenso
Partición
Replicación
Control de concurrencia
Exclusión mutua distribuida
Bloqueos
Control optimista de concurrencia
Ordenación por marcas de tiempo (MVCC)
Exclusión Mutua Distribuida
Coordinación de procesos para compartir recursos.
Los procesos ejecutan el siguiente fragmento de
código
◦ entrada()
◦ SECCIÓN CRÍTICA
◦ salida()
Solución centralizada
◦ Un proceso funciona como coordinador de bloqueos (lock
master), y concede bloqueos de acceso a secciones críticas.
◦ Factible hasta cierta cantidad de procesos.
Exclusión Mutua Distribuida
Solución distribuida
◦ No siempre es posible designar un lock master
◦ Ejemplo: Redes ethernet o wifi 'ad-hoc': solo un nodo debe
transmitir a través del medio
◦ Tres algoritmos
◦ Ring-based
◦ Ricart-Agrawala (1981)
◦ Maekawa (1985).
Servidor Central
Un proceso es el encargado de conceder permiso para
entrar en la sección crítica.
• Para tolerar fallos es necesario implementar también un
algoritmo de elección de líder.
• El servidor se convierte en un cuello de botella.
• Número de mensajes:
– Uno para la petición request.
– Uno para la concesión grant.
– Uno para liberar la exclusión mutua release.
Servidor Central
Master recibe solicitudes de acceso y responde en orden FIFO
◦ La respuesta es un token de acceso
◦ El proceso que sale de su sección crítica debe devolver el token
Mientras alguien tenga el token, procesos son encolados
Anillo: Ring based
• Los procesos se organizan en un anillo lógico. Un testigo
circula a través de éste.
• El proceso en posesión del testigo puede entrar en la
sección crítica.
• Para tolerar fallos es necesario implementar un
algoritmo para detectar pérdidas del testigo y
regenerarlo.
• Latencia: entre 0 y n (acaba de pasar el testigo)
• Los procesos están enviando mensajes aunque no
quieran entrar en la sección crítica.
Anillo: Ring based
Procesos organizados en un anillo lógico
◦ pi solo puede enviar mensajes a p(i+1) mod N
Cuando pi recibe el token
◦ Si no lo necesita, lo reenvía a p(i+1) mod N
◦ Si lo necesita, lo conserva. Al liberarlo, lo reenva a p(i+1) mod N
Comunicación Multicast
Las primitivas de comunicación básicas soportan la
comunicación uno a uno.
◦ Broadcast: el emisor envía un mensaje a todos los nodos
del sistema.
◦ Multicast: el emisor envía un mensaje a un subconjunto de
todos los nodos.
◦ Estas operaciones se emplean normalmente mediante
operaciones punto a punto
Ricart y Agrawala
Requiere la existencia un orden total de todos los mensajes en
el sistema
Procesos hacen multicast a los demás
Cada proceso pi mantiene un reloj logico Li
Mensajes de entrada incluyen <Li, pi>
Procesos poseen un estado:
◦ RELEASED. Se encuentra fuera de sección crítica
◦ WANTED. Desea entrar a sección critica
◦ HELD. Se encuentra dentro de sección crítica
Ricart y Agrawala
Un proceso para entrar en la región crítica actualiza su estado
a wanted y envía a los demás un mensaje muticast de petición
de entrada.
Cuando el proceso reciba permiso de todos los demás
procesos (el estado es released en todos los procesos) podrá
entrar en la región crítica.
Si un proceso, p, solicita entrar en la región crítica y ningún
otro la está ocupando, todos los procesos le darán permiso
para que entre.
Ricart y Agrawala
Si un proceso, q, está dentro de la exclusión mutua, no
contestará. Cuando la libere concederá permiso a p y éste
podrá entrar en la región crítica.
Si dos o más procesos solicitan la exclusión mutua
concurrentemente, el que tenga menor timestamp podrá
entrar en la región crítica,
A igualdad de timestamps, se le concederá la entrada al de
menor identificador de proceso. El otro proceso solicitante
concederá permiso al comparar los timestamps.
Ejemplo
a) Dos procesos (P0, P2) quieren entrar en la región al
mismo tiempo
b) El proceso 0 tiene la marca de tiempo más baja, entra
él.
c) Cuando el proceso 0 acaba, envía un OK, de esa forma
el proceso 2 entra
.
Algoritmo de Maekawa
Observacion: ¿se debe pedir acceso a todos?
¿Qué pasa si hay particiones?
Es posible pedir acceso solo a un subconjunto
◦ Siempre que los subconjuntos se traslapen
Proceso se convierten en candidatos que recolectan
votos
◦ Procesos en la intersección de los subconjuntos ayudan a
discriminar
Algoritmo de Maekawa
Cada proceso tiene un voting set Vi ⊆ 𝑝1, 𝑝2, … , 𝑝 𝑛
construidos de manera que:
◦ pi ⊆ Vi
◦ Vi ∩ Vj ≠ ∅
◦ 𝑉𝑖 = K
Cada proceso pi pertenece a M conjuntos Vi
Solución optima se obtiene con 𝐾~ 𝑁 y M = K
Algoritmo de Maekawa
Inicialmente: ∀𝑖 ; Spi = RELEASED; votedi = FALSE
Cuando pi quiere entrar a la sección crítica:
◦ Spi = WANTED
◦ Enva multicast a Vi
◦ Espera hasta recibir K respuestas
◦ Entra, y Spi = HELD
Cuando pj recibe una solicitud de pi
◦ IF (Spj == HELD) OR votedj = TRUE)
◦ Encolar solicitud de pi y no responder
◦ ELSE
◦ Responder a pi autorizando acceso
◦ votedi = TRUE
Algoritmo de Maekawa
Cuando pi sale de la sección crítica
◦ Spi = RELEASED
◦ Envía mensaje release a todos los miembros de Vi
Cuando pjrecibe un mensaje de release desde pi
◦ IF hay mensajes encolados
◦ pk= dequeue()
◦ Responder a pk
◦ voted = TRUE
◦ ELSE
◦ voted = FALSE
Control de concurrencia
Cuando se trabaja con bases de datos
◦ Se tienen transacciones que requieren operaciones de lectura y
escritura
◦ Se requiere que las transacciones sean serializables
Las BD Nosql por lo general usan transacciones a ítems
únicos de datos, sin embargo cada vez hay mas sistemas
que soportan transacciones con varias operaciones
Y cuales son las operaciones conflictivas?
◦ lectura vs escritura
◦ escritura vs escritura
◦ escritura vs lectura
Control de concurrencia
Bloqueos (en ambientes distribuidos)
◦ Exclusivos
◦ Compartidos
◦ De actualización
◦ Bloqueos a dos fases
◦ Estos se usan en los SBDD relacionales
Control de concurrencia
Enfoque de gestor único de bloqueos
◦ El gestor reside en un nodo único escogido Ni
◦ Todas las solicitudes de bloqueos y desbloqueos se realizan
en Ni.
◦ Basado en el algoritmo de Servidor Central.
◦ Maneja distintos niveles de bloqueos (X, S, U) y compatibilidad entre
bloqueos
◦ Tiene las mismas ventajas y desventajas de este algoritmo
Control de concurrencia
Gestor distribuido de bloqueos
◦ La función de bloqueos está distribuida
◦ Cada nodo mantiene un gestor de bloqueo local que
administra las solicitudes sobre los datos de ese nodo
Control de concurrencia con
réplicas
Copia principal
◦ Se escoge una réplica como Copia Principal que reside en el
nodo principal de ese dato.
◦ Se solicita un bloqueo a la copia principal.
Protocolo de mayoría
◦ Si un elemento de datos Q se replica en n sitios, se envía la
solicitud de bloqueo a más del 50% de los sitios.
◦ La transacción requiere que se bloquee la mayoría de las
réplicas.
◦ Se requieren 2(n/2 +1) mensajes para solicitudes de
bloqueo y (n/2 +1) para liberación
Control de concurrencia con
réplicas
Protocolo de consenso o quórum
◦ Se asigna a las operaciones de lectura y escritura dos
enteros: Qr: quorum de lectura y Qw: quorum de escritura
◦ Sea n el número de réplicas, entonces
◦ Qr + Qw > n y 2*Qw >n
◦ Para leer se deben bloqueas tantas replicas tal que >=Qr
◦ Para escribir se deben bloqueas tantas replicas tal que
>=Qw
◦ Puede reducir el coste de bloqueos de lectura y escritura
mediante la adecuada definición de los quórum Qr y Qw
Control de concurrencia
Ordenación con marcas de tiempo
◦ Cada operación se valida cuando se lleva a cabo
◦ Si la operación no es válida la transacción es abortada.
◦ Cada transacción se le asigna una marca de tiempo única
cuando comienza
◦ Las solicitudes de una transacción pueden ser ordenadas
totalmente de acuerdo a sus marcas de tiempo (hapens-
before)
Control de concurrencia
Reglas: dada una solicitud s de una transacción sobre
un objeto de dato D
◦ Si s=lectura(D), s es válida, sólo si D fue leído y escrito por
última vez por transacciones anteriores.
◦ Si s=escritura(D), s es válida sólo si d fue escrito por última
vez por una transacción anterior
Esto supone que solo existe una versión del dato y
restringe el acceso de la transacción en cada
solicitud.
Conflictos de operaciones con
ordenación por marcas de tiempo
Regla Ti Tj conflicto
1 Escritura Lectura Ti no debe escribir un objeto que haya sido leído
por cualquier Tj donde Tj>Ti, esto requiere que
Ti >= la mayor marca de tiempo de lectura del
objeto
2 Escritura Escritura Ti no debe escribir un objeto que haya sido
escrito por cualquier Tj donde Tj>Ti, esto
requiere que Ti >= la mayor marca de tiempo de
escritura del objeto
3 Lectura Escritura Ti no debe leer un objeto que haya sido escrito
por cualquier Tj donde Tj>Ti, esto requiere que
Ti >= la mayor marca de tiempo de escritura del
objeto
Técnicas de control de
concurrencia
Sean Ti y Tj dos transacciones (i ≠ j) y D un recurso
compartido
a) Si Ti ejecuta LEER(D)
Si MT(Ti) < MT_escritura(D)
Ti retrocede.
Else
MT_lectura(D) :=max(MT_lectura(D), MT(Ti))
b) Si Ti ejecuta ESCRIBIR(D)
Si MT(Ti) < MT_lectura(D) O Si MT(Ti) < MT_escritura(D)
Ti retrocede.
Else
MT_escritura (D) :=max(MT_escritura(D), MT(Ti))
Marzo 2012 ADMINISTRACIÓN DE BASE DE DATOS 28
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
Basado en anillo
Algoritmo del matón o abusón (bully) Investigar
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)
Próxima clase
Técnicas de particionamiento y replicación
Investigar (auto-sharding vr sharding manual)
Tipos de multicast
Multicast no fiable: no hay garantía de que el mensaje se
entregue a todos los nodos.
Multicast fiable: el mensaje es recibido por todos los nodos en
funcionamiento.
Multicast atómico: el protocolo asegura que todos los
miembros del grupo recibirán los mensajes de diferentes nodos
en el mismo orden.
Multicast causal: asegura que los mensaje se entregan de
acuerdo con las relaciones de causalidad.

Más contenido relacionado

La actualidad más candente

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
 
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
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: InstalaciónStratebi
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajesadiaz7703
 
Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2ingnucious
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Liz Ocampo
 
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)myle22
 
Teoria de la c.c.
Teoria de la c.c.Teoria de la c.c.
Teoria de la c.c.belmont402
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 

La actualidad más candente (20)

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
 
Practica1
Practica1Practica1
Practica1
 
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)
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
Control de errores
Control de erroresControl de errores
Control de errores
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Tema4
Tema4Tema4
Tema4
 
Concurrencia
ConcurrenciaConcurrencia
Concurrencia
 
Problemas markov
Problemas markovProblemas markov
Problemas markov
 
Bitcoin es latam
Bitcoin es latamBitcoin es latam
Bitcoin es latam
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: Instalación
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajes
 
PCJ Sesión 9: Threads
PCJ Sesión 9: ThreadsPCJ Sesión 9: Threads
PCJ Sesión 9: Threads
 
Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2
 
2 unidad sistemas operativos
2 unidad sistemas operativos 2 unidad sistemas operativos
2 unidad sistemas operativos
 
Taller 18
Taller 18Taller 18
Taller 18
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)
 
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)
Control de Transmision y de flujo de datos, Acuse de recibo negativo (nak)
 
Teoria de la c.c.
Teoria de la c.c.Teoria de la c.c.
Teoria de la c.c.
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 

Destacado

Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQLCé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 NoSQLJavier Guillot Jiménez
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsDavid Keener
 
自行车车铃结构解(费妍工学071)
自行车车铃结构解(费妍工学071)自行车车铃结构解(费妍工学071)
自行车车铃结构解(费妍工学071)zust
 
Good Old Jonas
Good Old JonasGood Old Jonas
Good Old Jonasmagnhild
 
祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸zust
 
стратегическая цель гос политики ( измен)
стратегическая цель гос политики ( измен)стратегическая цель гос политики ( измен)
стратегическая цель гос политики ( измен)farcrys
 

Destacado (20)

Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
 
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
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
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
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook Apps
 
自行车车铃结构解(费妍工学071)
自行车车铃结构解(费妍工学071)自行车车铃结构解(费妍工学071)
自行车车铃结构解(费妍工学071)
 
Ramzan Mubarak
Ramzan MubarakRamzan Mubarak
Ramzan Mubarak
 
Good Old Jonas
Good Old JonasGood Old Jonas
Good Old Jonas
 
祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸
 
Jupiterimages Catalog
Jupiterimages CatalogJupiterimages Catalog
Jupiterimages Catalog
 
Mother
MotherMother
Mother
 
стратегическая цель гос политики ( измен)
стратегическая цель гос политики ( измен)стратегическая цель гос политики ( измен)
стратегическая цель гос политики ( измен)
 
Randstad Campus
Randstad CampusRandstad Campus
Randstad Campus
 
ANDROID APLICACIONES
ANDROID APLICACIONESANDROID APLICACIONES
ANDROID APLICACIONES
 

Similar a Bd no sql tecnicas2

Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesosmastermind87
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
20120926 web perf-dns_v1
20120926 web perf-dns_v120120926 web perf-dns_v1
20120926 web perf-dns_v1Sergim
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...Victor Asanza
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSSelqit Mgw
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
Ó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
 

Similar a Bd no sql tecnicas2 (20)

Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
s.o.
s.o.s.o.
s.o.
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
20120926 web perf-dns_v1
20120926 web perf-dns_v120120926 web perf-dns_v1
20120926 web perf-dns_v1
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, LECCIÓN 1 RESUELTA 2do PARCIAL (2019 2do ...
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 
Tema5
Tema5Tema5
Tema5
 
Comunicación entre Procesos
Comunicación entre ProcesosComunicación entre Procesos
Comunicación entre Procesos
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Concurrencia y serialización final 2
Concurrencia y serialización final 2Concurrencia y serialización final 2
Concurrencia y serialización final 2
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Ó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...
 

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
 
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
 

Último

Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
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
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
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
 
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
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
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
 
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
 

Último (20)

Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
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
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
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
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
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
 
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
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
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
 
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
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 

Bd no sql tecnicas2

  • 1. Bd NoSQL Técnicas II PROFA. MERCY OSPINA mercy.ospinat@gmail.com
  • 2. Agenda Consistencia Exclusión Mutua Control de concurrencia Disponibilidad Elección y consenso Partición Replicación
  • 3. Control de concurrencia Exclusión mutua distribuida Bloqueos Control optimista de concurrencia Ordenación por marcas de tiempo (MVCC)
  • 4. Exclusión Mutua Distribuida Coordinación de procesos para compartir recursos. Los procesos ejecutan el siguiente fragmento de código ◦ entrada() ◦ SECCIÓN CRÍTICA ◦ salida() Solución centralizada ◦ Un proceso funciona como coordinador de bloqueos (lock master), y concede bloqueos de acceso a secciones críticas. ◦ Factible hasta cierta cantidad de procesos.
  • 5. Exclusión Mutua Distribuida Solución distribuida ◦ No siempre es posible designar un lock master ◦ Ejemplo: Redes ethernet o wifi 'ad-hoc': solo un nodo debe transmitir a través del medio ◦ Tres algoritmos ◦ Ring-based ◦ Ricart-Agrawala (1981) ◦ Maekawa (1985).
  • 6. Servidor Central Un proceso es el encargado de conceder permiso para entrar en la sección crítica. • Para tolerar fallos es necesario implementar también un algoritmo de elección de líder. • El servidor se convierte en un cuello de botella. • Número de mensajes: – Uno para la petición request. – Uno para la concesión grant. – Uno para liberar la exclusión mutua release.
  • 7. Servidor Central Master recibe solicitudes de acceso y responde en orden FIFO ◦ La respuesta es un token de acceso ◦ El proceso que sale de su sección crítica debe devolver el token Mientras alguien tenga el token, procesos son encolados
  • 8. Anillo: Ring based • Los procesos se organizan en un anillo lógico. Un testigo circula a través de éste. • El proceso en posesión del testigo puede entrar en la sección crítica. • Para tolerar fallos es necesario implementar un algoritmo para detectar pérdidas del testigo y regenerarlo. • Latencia: entre 0 y n (acaba de pasar el testigo) • Los procesos están enviando mensajes aunque no quieran entrar en la sección crítica.
  • 9. Anillo: Ring based Procesos organizados en un anillo lógico ◦ pi solo puede enviar mensajes a p(i+1) mod N Cuando pi recibe el token ◦ Si no lo necesita, lo reenvía a p(i+1) mod N ◦ Si lo necesita, lo conserva. Al liberarlo, lo reenva a p(i+1) mod N
  • 10. Comunicación Multicast Las primitivas de comunicación básicas soportan la comunicación uno a uno. ◦ Broadcast: el emisor envía un mensaje a todos los nodos del sistema. ◦ Multicast: el emisor envía un mensaje a un subconjunto de todos los nodos. ◦ Estas operaciones se emplean normalmente mediante operaciones punto a punto
  • 11. Ricart y Agrawala Requiere la existencia un orden total de todos los mensajes en el sistema Procesos hacen multicast a los demás Cada proceso pi mantiene un reloj logico Li Mensajes de entrada incluyen <Li, pi> Procesos poseen un estado: ◦ RELEASED. Se encuentra fuera de sección crítica ◦ WANTED. Desea entrar a sección critica ◦ HELD. Se encuentra dentro de sección crítica
  • 12. Ricart y Agrawala Un proceso para entrar en la región crítica actualiza su estado a wanted y envía a los demás un mensaje muticast de petición de entrada. Cuando el proceso reciba permiso de todos los demás procesos (el estado es released en todos los procesos) podrá entrar en la región crítica. Si un proceso, p, solicita entrar en la región crítica y ningún otro la está ocupando, todos los procesos le darán permiso para que entre.
  • 13. Ricart y Agrawala Si un proceso, q, está dentro de la exclusión mutua, no contestará. Cuando la libere concederá permiso a p y éste podrá entrar en la región crítica. Si dos o más procesos solicitan la exclusión mutua concurrentemente, el que tenga menor timestamp podrá entrar en la región crítica, A igualdad de timestamps, se le concederá la entrada al de menor identificador de proceso. El otro proceso solicitante concederá permiso al comparar los timestamps.
  • 14. Ejemplo a) Dos procesos (P0, P2) quieren entrar en la región al mismo tiempo b) El proceso 0 tiene la marca de tiempo más baja, entra él. c) Cuando el proceso 0 acaba, envía un OK, de esa forma el proceso 2 entra .
  • 15. Algoritmo de Maekawa Observacion: ¿se debe pedir acceso a todos? ¿Qué pasa si hay particiones? Es posible pedir acceso solo a un subconjunto ◦ Siempre que los subconjuntos se traslapen Proceso se convierten en candidatos que recolectan votos ◦ Procesos en la intersección de los subconjuntos ayudan a discriminar
  • 16. Algoritmo de Maekawa Cada proceso tiene un voting set Vi ⊆ 𝑝1, 𝑝2, … , 𝑝 𝑛 construidos de manera que: ◦ pi ⊆ Vi ◦ Vi ∩ Vj ≠ ∅ ◦ 𝑉𝑖 = K Cada proceso pi pertenece a M conjuntos Vi Solución optima se obtiene con 𝐾~ 𝑁 y M = K
  • 17. Algoritmo de Maekawa Inicialmente: ∀𝑖 ; Spi = RELEASED; votedi = FALSE Cuando pi quiere entrar a la sección crítica: ◦ Spi = WANTED ◦ Enva multicast a Vi ◦ Espera hasta recibir K respuestas ◦ Entra, y Spi = HELD Cuando pj recibe una solicitud de pi ◦ IF (Spj == HELD) OR votedj = TRUE) ◦ Encolar solicitud de pi y no responder ◦ ELSE ◦ Responder a pi autorizando acceso ◦ votedi = TRUE
  • 18. Algoritmo de Maekawa Cuando pi sale de la sección crítica ◦ Spi = RELEASED ◦ Envía mensaje release a todos los miembros de Vi Cuando pjrecibe un mensaje de release desde pi ◦ IF hay mensajes encolados ◦ pk= dequeue() ◦ Responder a pk ◦ voted = TRUE ◦ ELSE ◦ voted = FALSE
  • 19. Control de concurrencia Cuando se trabaja con bases de datos ◦ Se tienen transacciones que requieren operaciones de lectura y escritura ◦ Se requiere que las transacciones sean serializables Las BD Nosql por lo general usan transacciones a ítems únicos de datos, sin embargo cada vez hay mas sistemas que soportan transacciones con varias operaciones Y cuales son las operaciones conflictivas? ◦ lectura vs escritura ◦ escritura vs escritura ◦ escritura vs lectura
  • 20. Control de concurrencia Bloqueos (en ambientes distribuidos) ◦ Exclusivos ◦ Compartidos ◦ De actualización ◦ Bloqueos a dos fases ◦ Estos se usan en los SBDD relacionales
  • 21. Control de concurrencia Enfoque de gestor único de bloqueos ◦ El gestor reside en un nodo único escogido Ni ◦ Todas las solicitudes de bloqueos y desbloqueos se realizan en Ni. ◦ Basado en el algoritmo de Servidor Central. ◦ Maneja distintos niveles de bloqueos (X, S, U) y compatibilidad entre bloqueos ◦ Tiene las mismas ventajas y desventajas de este algoritmo
  • 22. Control de concurrencia Gestor distribuido de bloqueos ◦ La función de bloqueos está distribuida ◦ Cada nodo mantiene un gestor de bloqueo local que administra las solicitudes sobre los datos de ese nodo
  • 23. Control de concurrencia con réplicas Copia principal ◦ Se escoge una réplica como Copia Principal que reside en el nodo principal de ese dato. ◦ Se solicita un bloqueo a la copia principal. Protocolo de mayoría ◦ Si un elemento de datos Q se replica en n sitios, se envía la solicitud de bloqueo a más del 50% de los sitios. ◦ La transacción requiere que se bloquee la mayoría de las réplicas. ◦ Se requieren 2(n/2 +1) mensajes para solicitudes de bloqueo y (n/2 +1) para liberación
  • 24. Control de concurrencia con réplicas Protocolo de consenso o quórum ◦ Se asigna a las operaciones de lectura y escritura dos enteros: Qr: quorum de lectura y Qw: quorum de escritura ◦ Sea n el número de réplicas, entonces ◦ Qr + Qw > n y 2*Qw >n ◦ Para leer se deben bloqueas tantas replicas tal que >=Qr ◦ Para escribir se deben bloqueas tantas replicas tal que >=Qw ◦ Puede reducir el coste de bloqueos de lectura y escritura mediante la adecuada definición de los quórum Qr y Qw
  • 25. Control de concurrencia Ordenación con marcas de tiempo ◦ Cada operación se valida cuando se lleva a cabo ◦ Si la operación no es válida la transacción es abortada. ◦ Cada transacción se le asigna una marca de tiempo única cuando comienza ◦ Las solicitudes de una transacción pueden ser ordenadas totalmente de acuerdo a sus marcas de tiempo (hapens- before)
  • 26. Control de concurrencia Reglas: dada una solicitud s de una transacción sobre un objeto de dato D ◦ Si s=lectura(D), s es válida, sólo si D fue leído y escrito por última vez por transacciones anteriores. ◦ Si s=escritura(D), s es válida sólo si d fue escrito por última vez por una transacción anterior Esto supone que solo existe una versión del dato y restringe el acceso de la transacción en cada solicitud.
  • 27. Conflictos de operaciones con ordenación por marcas de tiempo Regla Ti Tj conflicto 1 Escritura Lectura Ti no debe escribir un objeto que haya sido leído por cualquier Tj donde Tj>Ti, esto requiere que Ti >= la mayor marca de tiempo de lectura del objeto 2 Escritura Escritura Ti no debe escribir un objeto que haya sido escrito por cualquier Tj donde Tj>Ti, esto requiere que Ti >= la mayor marca de tiempo de escritura del objeto 3 Lectura Escritura Ti no debe leer un objeto que haya sido escrito por cualquier Tj donde Tj>Ti, esto requiere que Ti >= la mayor marca de tiempo de escritura del objeto
  • 28. Técnicas de control de concurrencia Sean Ti y Tj dos transacciones (i ≠ j) y D un recurso compartido a) Si Ti ejecuta LEER(D) Si MT(Ti) < MT_escritura(D) Ti retrocede. Else MT_lectura(D) :=max(MT_lectura(D), MT(Ti)) b) Si Ti ejecuta ESCRIBIR(D) Si MT(Ti) < MT_lectura(D) O Si MT(Ti) < MT_escritura(D) Ti retrocede. Else MT_escritura (D) :=max(MT_escritura(D), MT(Ti)) Marzo 2012 ADMINISTRACIÓN DE BASE DE DATOS 28
  • 29. 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
  • 30. 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.
  • 31. 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.
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. Elección Basado en anillo Algoritmo del matón o abusón (bully) Investigar
  • 39. 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)
  • 40. Consenso Paxos Consenso para replicación (investigar sloopy quorum &hinted handoff)
  • 41. Próxima clase Técnicas de particionamiento y replicación Investigar (auto-sharding vr sharding manual)
  • 42. Tipos de multicast Multicast no fiable: no hay garantía de que el mensaje se entregue a todos los nodos. Multicast fiable: el mensaje es recibido por todos los nodos en funcionamiento. Multicast atómico: el protocolo asegura que todos los miembros del grupo recibirán los mensajes de diferentes nodos en el mismo orden. Multicast causal: asegura que los mensaje se entregan de acuerdo con las relaciones de causalidad.