bd nosql tecnicas

33
Bd NoSQL Técnicas PROFA. MERCY OSPINA [email protected]

Upload: ericka-alexandra-montero-h

Post on 16-Feb-2016

7 views

Category:

Documents


2 download

DESCRIPTION

Bd NoSQL Tecnicas

TRANSCRIPT

Page 1: Bd NoSQL Tecnicas

Bd NoSQLTécnicasPROFA. MERCY OSPINA

[email protected]

Page 2: Bd NoSQL Tecnicas

AgendaConsistenciaOrdenación de EventosExclusión MutuaControl de concurrencia

DisponibilidadParticiónReplicaciónElección y consenso

Page 3: Bd NoSQL Tecnicas

Consistencia Un sistema distribuido es generalmente

considerado consistente si después de una operación de actualización de algún escritor todos los lectores ven esa actualización de alguna fuente de datos compartida.

Consistencia secuencial: Las actualizaciones de un cliente se aplican en el orden en que fueron enviadas

Page 4: Bd NoSQL Tecnicas

Modelo de un sistema distribuido

Modelo de sistema:◦ Compuesto por nodos.◦ Procesos secuenciales {P1, P2, ...Pn} que ejecutan un algoritmo

local (en cada nodo)◦ Canales de comunicación

Eventos en Pi◦ Ei = {ei1, ei2, ...ein}

Tipos de eventos locales◦ Internos (cambios en el estado de un proceso)◦ Comunicación (envío, recepción)

Page 5: Bd NoSQL Tecnicas

Modelo de un sistema distribuido

Un sistema distribuido se puede modelar como un sistema de transición de estados STE (C, → , I)

1. C es un conjunto de estados2. → describe las posibles transiciones(→ ⊆ C × C)3. I describe los estados iniciales(I ⊆ C)

El estado de un sistema distribuido, C, se puede describir como◦ La configuración actual de cada proceso/procesador◦ Los mensajes en tránsito por la red

Page 6: Bd NoSQL Tecnicas

Modelo de un sistema distribuido

En un sistema distribuido el estado global se encuentra distribuido entre los nodos

◦ Cada nodo posee una visión subjetiva del estado global◦ Dos eventos pueden ser vistos en distintos orden por distintos

observadores

Page 7: Bd NoSQL Tecnicas

Modelo de un sistema distribuido

Algoritmo local:◦ Un proceso cambia de un estado a otro (evento interno)◦ Un proceso cambia de un estado a otro y envía un mensaje a otro

proceso (evento de envío)◦ Un proceso recibe un mensaje y cambia su estado (evento de

recepción)

Restricciones◦ Un proceso p solo puede recibir un mensaje después de haber sido

enviado por otro◦ Un proceso p solo puede cambiar del estado c al estado d si está

actualmente en el estado c

Page 8: Bd NoSQL Tecnicas

Modelo de un sistema distribuido

Algoritmos Distribuidos: Los algoritmos distribuidos deben tener las siguientes propiedades:◦ La información relevante se distribuye entre varias máquinas◦ Los procesos toman las decisiones sólo en base a la

información local◦ Debe evitarse un punto único de fallo◦ No existe un reloj común

Page 9: Bd NoSQL Tecnicas

Estados globales y tiempo Consideramos un sistema distribuido como una coleccion P de N procesos pi , con i = 1; 2; : : : ;N.◦ Cada proceso pi ejecuta en un procesador independiente◦ Como no hay memoria compartida solo se comunican por

paso de mensajes: send y recv◦ Cada proceso pi tiene un estado si que cambia durante la

ejecución.

Evento•Ocurrencia de una acción individual send, recv u otra acción que cambie el estado del pi

Page 10: Bd NoSQL Tecnicas

Historia Los eventos dentro de pi poseen un orden total, definido por la relacion → i

Ahora es posible definir la historia del proceso pi

Relación ocurre antes

• e1 → i e2 ↔ e1 ocurre antes que e2 en pi .

Historia de pi

Serie de eventos que ocurren en pi denidos por la relacion → i history (pi ) = hi = <e i

0 , e i 1 , e i

2 , ….>

Page 11: Bd NoSQL Tecnicas

Relojes Físicos

◦ UTC◦ Algoritmo de Christian◦ Algoritmo de Berkeley

Orden causal◦ Timestamp◦ Vector Clock

Page 12: Bd NoSQL Tecnicas

Relojes Físicos Definiciones:

• normalmente UTC =Time Coordinated Universal TimeTiempo físico de referencia:

• periodo entre dos actualizaciones del registro del tiempo local, debe ser menor que el intervalo de tiempo mínimo entre dos eventos producidos consecutivamente en el nodo

Resolución:

• diferencia entre el tiempo local y el tiempo físico de referencia en un instante

Desviación (offset, skew, q):

• desviación por unidad de tiempo (lo que adelanta o atrasa el reloj)Deriva (drift, d):

• Desviación máxima que se puede garantizar en el ajuste de un relojPrecisión (accuracy):

Page 13: Bd NoSQL Tecnicas

Relojes Físicos Sincronización: procedimiento por el que se ajusta el valor de un reloj a un tiempo físico de referencia con una precisión preestablecida (UTC)

Externa: Se busca una fuente externa de referencia fiable Interna:

◦ Centralizada: Utiliza un servidor de tiempos que proporciona una referencia fiable (Algoritmo de Christian – 1989)

◦ Distribuida: El coordinador solicita los tiempos a los demás nodos para calcular un tiempo medio (Algoritmo de Berkeley -1989)

Page 14: Bd NoSQL Tecnicas

Relojes Físicos Algoritmo de Christian (1989)

◦ el cliente envía una petición al servidor (mreq)◦ el servidor contesta enviando la referencia de tiempo en otro

mensaje (mt)◦ retardo de los mensajes: min + d

◦ min es el tiempo mínimo de transmisión. Es constante y se puede determinar a partir de las características de la red

◦ d es variable y depende de la carga del sistema y de la red

Page 15: Bd NoSQL Tecnicas

◦ t(mt): tiempo devuelto por el servidor en el mensaje mt◦ D: tiempo desde que se envía mreq y se recibe mt◦ min: tiempo mínimo de transmisión de un mensaje◦ Suposición: el servidor asigna la referencia t(mt) en la mitad del

intervalo◦ D-2*min (instante t en el cliente). Así se logra la mejor precisión◦ Desviación: q = t - t(mt) = t1 - D/2 - t(mt)◦ Precisión = D/2 – min

Page 16: Bd NoSQL Tecnicas

Relojes Físicos Algoritmo de Berkeley (1989)

◦ Motivación: Las diferentes desviaciones de los tiempos locales tienden a cancelarse entre ellas en torno a un tiempo medio que se puede tomar como referencia fiables para la sincronización interna.

◦ El coordinador solicita los tiempos a los demás nodos y calcula un tiempo medio a partir de las medidas obtenidas, excluyendo las respuestas espurias y las que no llegan en plazo◦ T = Σ(t(mi) - Di/2) / N

◦ El coordinador envía a cada nodo su desviación con respecto a la media, para que realice el ajuste ◦ θi = t(mi) - Di/2 - T

◦ Si el coordinador falla, se elige un nuevo coordinador

Page 17: Bd NoSQL Tecnicas

Algoritmo de Berkeley

a) El demonio de tiempo solicita el valor de reloj de todas las demás máquinas (nodos)

b) Las máquinas respondenc) El demonio de tiempo le dice a los demás como ajustar su reloj

Page 18: Bd NoSQL Tecnicas

http://www.json.org/xml.html

Relaciones causales Precisión de relojes físicos tiene un límite

◦ Sincronización perfecta es imposible en un sistema distribuido◦ Pero dentro de un mismo proceso si hay un orden absoluto◦ Muchas aplicaciones requieren únicamente ordenar los

eventos (y no tanto conocer el instante exacto en que ocurrieron)

◦ Se puede establecer causalidad para establecer ordenes entre distintos procesos

Page 19: Bd NoSQL Tecnicas

Relaciones causales Para ordenar los eventos de un mismo proceso bastaría con asociar a cada evento x el tiempo local o una marca de tiempo T(x).

Se dice que existe una relación de causalidad entre dos eventos del sistema (x →y, “x ha sucedido antes que y”, “x happened before y”) si:

HB1: x e y son eventos del mismo proceso y T(x)<T(y)HB2: x e y son los eventos enviar(m) y recibir(m) del mismo mensaje mHB3: Existe otro evento z tal que x → z y z → y (cierre transitivo de la

relación)

Page 20: Bd NoSQL Tecnicas

Relación ocurre-antes (happens-before)Lamport, 1978

Si entre dos eventos no hay relación de causalidad, se dice que son concurrentes: x || y

Establecer la relación de causalidad entre los eventos a, b, c, d, e y f

Page 21: Bd NoSQL Tecnicas

Relacion ocurre-antes (happens-before)Lamport, 1978

No ofrece una relación de orden total

HB1: a → b, c → d, e →f

HB2: b → c, d → f ,

HB3: a →c, c →f

pero a → e y e → a, a y e son concurrentes

e||a,b,c,d

Page 22: Bd NoSQL Tecnicas

Reloj Lógico – TimestampLamport, 1978

Un reloj lógico es un contador monótono creciente◦ Cada proceso pi mantiene su

propio reloj logico Li◦ Sin relación con el reloj físico◦ Usado para establacer Lamport Timestamps

◦ Li (e), timestamp del evento e en pi

◦ L(e), timestamp del evento e en el proceso en que ocurrió

Algoritmo:◦ Inicialmente, Li = 0, i◦ Antes de un evento local o envío de

mensaje en pi: Li = Li + 1◦ Cuando pi envía un mensaje m a pj,

pi incluye el valor de su reloj lógico en el mensaje, Lm.

◦ Al recibir dicho mensaje, pi actualiza su reloj local de la siguiente manera:◦ (1) Li = max(Li, Lm), ◦ (2) Li = Li + 1

Problema: Li(x) < Lj(y) no implica x → y

Page 23: Bd NoSQL Tecnicas

Reloj Lógico – TimestampLamport, 1978

Page 24: Bd NoSQL Tecnicas

Reloj Lógico – TimestampLamport, 1978

Algunos eventos tienen el mismo timestamp◦ Es normal si son concurrentes◦ ¿Y si son desean entrar a una sección crítica?

Solucion arbitraria (pero efectiva)◦ Reemplazar el timestamp Li de e en pi por (Lii ; i )◦ Para dos timestamps (Li ; i) y (Ljj ; j ), se dene:◦ (Li ; i) < (Lj ; j) Li < Lj (Ti= Tj i < j)

Se establece un orden total

Page 25: Bd NoSQL Tecnicas

Relojes VectorialesMattern (1989), Fidge (1991)

Un Reloj Vectorial para N procesos, es un vector N-dimensional ◦ Cada proceso mantiene su reloj vectorial Vi , y marca sus

eventos◦ Al hacer send(m), se agrega Vi◦ Vi(x) < Vj(y) x y

Page 26: Bd NoSQL Tecnicas

Relojes VectorialesMattern (1989), Fidge (1991)

Inicialmente, Vi[j] = 0, "i, j1. Vi se actualiza antes de cada evento en pi : Vi [i ] := Vi [i ] + 12. Cuando pi hace send(m), agrega el valor t = Vi3. Cuando pi recibe el par (m; t), actualiza:4. Vi [j ] := max(Vi [j ]; t[j ]), para j = 1; 2; : : : ;N y aplica 2 antes de aplicar un

timestamp a recv (m)

a || b . . . cuando V(a) V(b) y V(a) V(b)

Page 27: Bd NoSQL Tecnicas

Relojes VectorialesMattern (1989), Fidge (1991)

Debilidades y Variantes:◦ Almacenamiento y envo O(N)◦ Charron-Bost (1991) demuestra que para determinar la

relación ocurre-antes usando timestamps, es necesario utilizar las N dimensiones

◦ Raynal & Singhal (1996) indicando maneras de enviar menos informacion, a cambio de un overhead dentro de cada proceso para reconstruir los vectores.

◦ Relojes Matriciales: mantienen estimaciones de relojes vectoriales de los N procesos.

Page 28: Bd NoSQL Tecnicas

Relojes VectorialesMattern (1989), Fidge (1991)

Debilidades y Variantes:◦ Almacenamiento y envo O(N)◦ Charron-Bost (1991) demuestra que para determinar la

relación ocurre-antes usando timestamps, es necesario utilizar las N dimensiones

◦ Raynal & Singhal (1996) indicando maneras de enviar menos informacion, a cambio de un overhead dentro de cada proceso para reconstruir los vectores.

◦ Relojes Matriciales: mantienen estimaciones de relojes vectoriales de los N procesos.

Page 29: Bd NoSQL Tecnicas

Estados globales Investigar para la próxima clase - ¿Qué es un estado global? - Utilidad - Algoritmo de Instantáneas de Chandy y Lamport

Page 30: Bd NoSQL Tecnicas

Control de concurrencia Exclusión mutua distribuida Bloqueos Control optimista de concurrencia Ordenación por marcas de tiempo (MVCC)

Page 31: Bd NoSQL Tecnicas

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.

Page 32: Bd NoSQL Tecnicas

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

Page 33: Bd NoSQL Tecnicas

Siguiente clase Algoritmos de exclusión mutua Control de concurrencia Algoritmos de elección y consenso Técnicas de particionamiento