La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bd NoSQL Técnicas II PROFA. MERCY OSPINA

Presentaciones similares


Presentación del tema: "Bd NoSQL Técnicas II PROFA. MERCY OSPINA"— Transcripción de la presentación:

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

17

18 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

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

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

23 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

24 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

25 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

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

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

28 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

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

30 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

31 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

32 Elección Anillo

33 Elección Basado en anillo Algoritmo del matón o abusón (bully) Investigar

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

35 Consenso Paxos Consenso para replicación (investigar sloopy quorum &hinted handoff)

36 Próxima clase Técnicas de particionamiento y replicación Investigar (auto-sharding vr sharding manual)

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

38 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


Descargar ppt "Bd NoSQL Técnicas II PROFA. MERCY OSPINA"

Presentaciones similares


Anuncios Google