Bd NoSQL Técnicas II PROFA. MERCY OSPINA

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

Tabla de Contenido Concurrencia.
Sincronización en sistemas distribuidos
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
IBD Clase 18.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Servicios de red e Internet
Confiabilidad en Bases de Datos Distribuidas
Sistemas Distribuidos y Paralelos
Unidad 6 Interbloqueos (Dead Lock)
Enginyería de Xarxes Alberto Guerrero Raúl Moreno Carlos Rodríguez
Sistemas Distribuidos Replicación
Sistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Introducción a los Sistemas de Bases de Datos Distribuidos
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
REDES.
Concurrencia: interbloqueo e inanición
Sistemas Distribuidos
Deadlocks Abrazo Mortal Bloqueos mutuos
Unidad 4 Interbloqueos (Dead Lock)
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Unidad III Administración de procesos
Bases de datos Distribuidas ITES de la región carbonífera 1 Problemas de las Bases de datos distribuidas.
SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale.
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
PROTOCOLO DE SPANNING-TREE Semestre 3 Capítulo 7
Sincronización de Relojes
Sincronización y Latecomers
DHCP protocolo de configuración dinámica de host.
Transacciones en sistemas de base de datos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Topologías Gabriel Savo. Red en Bus Todas las estaciones están conectadas a un único canal de comunicaciones por medio de unidades de interfaz y derivadores.
Aplicaciones Peer-to-peer Cc50h Carácterísticas No hay servidor central Cada aplicación se comporta como cliente y servidor de las demás Son exceltentes.
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
BASES DE DATOS DISTRIBUIDAS
Redes de Area Local, LAN Una red de área local es una red de datos de alta velocidad que cubre un área geográfica relativamente pequeña. Típicamente conecta.
Sincronizacion de Procesos Distribuidos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Funcionamiento del protocolo DHCP. Tipo de mensajes
Sincronización de Relojes
Teoría de Sistemas Operativos Sincronización Procesos
C ONCURRENCIA Y M ANEJO DE S ESIONES. C ONCURRENCIA Es una propiedad del sistema en el cual muchos calculos se estan ejecutando simultaneamente, y son.
Teoría de Sistemas Operativos Sistemas distribuidos.
Protocolos de Sondeo SNOOPY
File Transfer Protocol.
La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones.
Jorge De Nova Segundo. Funcionamiento del servicio DHCP. Tipos de mensajes. DHCP Asigna direcciones IP a otras máquinas de la red. Este protocolo puede.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
Protocolos de Enrutamiento Multicast
SERVICIOS EN RED UT2 – Servicios DHCP.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Gestión de Memoria – Parte 2
Bd NoSQL Técnicas II PROFA. MERCY OSPINA
Bd NoSQL Técnicas PROFA. MERCY OSPINA
Bd NoSQL Técnicas III PROFA. MERCY OSPINA
Consistencia y Replicación
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Sistemas Distribuidos
Exclusión mutua Un Algoritmo Centralizado Algoritmo Descentralizado
Transcripción de la presentación:

Bd NoSQL Técnicas II PROFA. MERCY OSPINA

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

Cuando pi sale de la sección crítica ◦ Spi = RELEASED ◦ Envía mensaje release a todos los miembros de Vi Cuando pj recibe 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 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 ReglaTiTjconflicto 1EscrituraLecturaTi 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 2Escritura 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 3LecturaEscrituraTi 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 2012ADMINISTRACIÓN DE BASE DE DATOS 24

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

Control de concurrencia Investigue los mecanismos de control de concurrencia usados por los sistemas de bases de datos NoSQL. Indique si son variantes de los vistos en clase.

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 ◦ pi i 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

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.

Consenso 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