Documente Academic
Documente Profesional
Documente Cultură
Znode
q Almacenado en memoria
q Espacio de nombres
jerrquicos
q No estn pensados para
almacenamiento general
(varios KB)
Tipos:
q Normales
q Efmeros
q Secuenciales
Los clientes pueden manipular los
zonodes a travs del API de
ZooKeeper
client
client
client
server replica
client
client
client
server replica
client
client
server replica
broadcast atmico
client
client
client
server replica
Broadcast atmico
Entrega de mensajes fiable, si un mensaje se entrega a un
q
ordenarse despus de B
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 21
Cmo lo consigue?
Sincronizacin
q
Consenso
q
Modelo sncrono
Relojes sincronizados
q
Modelo asncrono
No hay sincronizacin de relojes
q
simultneamente
Modelo de sistema:
Procesos secuenciales {P1, P2, ...Pn} que ejecutan un
q
algoritmo local
Canales de comunicacin
q
Eventos en Pi
Ei = {ei1, ei2, ...ein}
q
Algoritmo local:
Un proceso cambia de un estado a otro (evento inerno)
q
recepcin)
Restricciones
Un proceso p solo puede recibir un mensaje despus de
q
q H Es transitiva
Si a H b y b H c entonces a H c
q H es reflexiva.
a H a para cualquier evento
p1
p2
p3
time
Eventos relacionados
causalmente
p1
Mismo color ~ orden causal
p2
p3
tiempo
p1
p2
p3
tiempo
p1
p2
p3
tiempo
Sincronizacin de relojes
ordenacin de eventos
Exclusin mutua distribuida
Algoritmos de eleccin
Comunicacin multicast y ordenacin de mensajes
Problemas de consenso
Deteccin de interbloqueos
Asignacin de recursos
Planificacin
Tolerancia a fallos
P1
m1 m3 m4
m2 m5
P2
Observador
e1 e2 e3 e4 e5
Observador
e1 e2 e3 e4 e5
P1
m1
m2
P2
Observador
e2 e1
?
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 42
Marcas de tiempo en de los procesos?
1 3
P1
m1
m2
6 8
P2
Observador
e1-6 e2-3
?
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 43
Marcas de tiempo en de los procesos?
1 3
P1
m1
m2
6 8
P2
Observador
e1-6 e2-3
Ci(t) = a Hi(t) + b
q Ej: # ms o ns transcurridos desde una fecha de referencia
Resolucin del reloj: periodo entre actualizaciones de Ci(t)
q Determina la ordenacin de eventos
Dos relojes en dos computadores diferentes dan medidas
distintas
q Un reloj actual puede tener una deriva de1s al da
q Necesidad de sincronizar relojes fsicos de un sistema
distribuido
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 45
Sincronizacin de relojes fsicos
P1
m1 m3 m4
m2 m5
P2
Observador
e1 e2 e3 e4 e5
La relacin es transitiva
q
p1
0 1 2 3 4
p2
0 4 5
p3
0 1 6
tiempo
un algoritmo diferente
Algoritmo de Welch
En lugar de avanzar el reloj en respuesta a los mensajes que
q
e11 e12
P1
(1) (2)
e21 e22
P2
(1) (3)
p1
[1,0,0] [2,0,0] [3,0,0] [4,0,0] [5,0,0]
p2
[0,1,0] [4,2,0] [4,3,0]
p3
[0,0,1] [0,0,2] [4,3,3]
tiempo
RV < RV si y solo si
RV RV y
q
Entrega causal
sendi(m) H sendj(m) entonces entregak(m) H entregak(m)
q
P1
m
P2
m
P3
Progreso
q
Espera acotada
q
Algoritmos
Algoritmo centralizado
q
Algoritmo distribuido
q
..
q
0 1 2 0 1 2 0 1 2
entrada salida
entrada OK
OK No hay respuespuesta
(bloquea al cliente)
C C C
emisor
Si el receptor ya est en la SC no responde
}
64
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Anillo con testigo
Los procesos se ordenan conceptualmente como un anillo
Por el anillo circula un testigo
Cuando un proceso quiere entrar en la SC debe esperar a
recoger el testigo
Cuando sale de la SC enva el testigo al nuevo proceso del
anillo
65
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Ejemplo. Algoritmo de votacin de
Maekawa
Idea: no solicitar permiso de todos los procesos, solo de un
subconjunto
Los subconjuntos deben solaparse
q
Pi est en Vi
Vi Vj
Todos subconjuntos de igual tamao
Cada proceso Pj est contenido en M subconjutos
votantes
Solucin optima
K~ N
q
M=K
q
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 66
Algoritmo de votacin de Maekawa
enter():
state := WANTED;
Multicast request to processes in Vi - { Pi };
Wait until (K - 1) responses are received;
state := HELD;
Algoritmo de anillo
q
70
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Variantes del problema
Suposiciones:
q Comunicacin sncrona
q Procesos completamente conectados
q Entrega de mensajes fiable
74
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Algoritmo del matn. Ejemplo
Cuando un proceso P observa que el coordinador no responde
inicia una eleccin:
75
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Algoritmo del matn. Ejemplo
76
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Algoritmo LCR (basado en anillo)
0 3
7 4
6 5
5
79
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Comunicacin multicast
Problemas de fiabilidad:
q Alguno de los mensajes se puede perder.
q El proceso emisor puede fallar despus de realizados
algunos envos. En este caso algunos procesos no recibirn
el mensaje.
P1 P2 P3 P4
A B
Tiempo
A B
t2
t1
tiempo
c1
c2 c3
entrega
cola de cola de
espera entrega
Peticiones
94
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Mtodo distribuido
Birman y Joseph 1987
Cada proceso q en el grupo almacena:
q Aq: mayor nmero de secuencia acordado que se ha observado hasta el
momento
q Pq: su mayor nmero de secuencia propuesto
q Los identificadores deben incluir el nmero de proceso para asegurar un orden
total
Cuando un proceso p realiza un BCAST enva el mensaje al resto
Cada proceso q que recibe el mensaje de p
q Propone Pq=Max(Aq, Pq) + 1
q Almacena (m, Pq) en su cola y lo marca como no entregable
q Enva Pq al emisor del mensaje (p)
El proceso q recibe todos los nmeros de secuencia propuesto y selecciona el mayor
A como el siguiente nmero de secuencia acordado y lo enva a todos
q En q se fija Aq = Max(Aq, A) y se marca el mensaje como entregable
q Se reordena la cola y si est el primero se entrega
95
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Ejemplo
Nodo 1 Nodo 2 Nodo 3
A1 = 14 A12 = 15 A3 = 16
Multicast (M1) Multicast(M2) Multicast(M3)
Inicialmente:
Los tres nodos realizan un multicast simultneo
Inicialmente:
Los tres nodos realizan un multicast simultneo
M3 M1 M2 M2 M1 M3 M1 M3 M2
U U U U U U U U U
Etapa 1:
Los mensajes llegan a los receptores en orden distinto
Se les propone un nmero de secuencia, Pq=Max(Aq, Pq) + 1
(se aade identificador de proceso)
Se insertan en las colas y se marcan como no entregables (U)
M3 M1 M2 M2 M1 M3 M1 M3 M2
U U U U U U U U U
Etapa 2:
El Nodo 1 recibe las marcas asociada a M1 envidas por el nodo 2 (17.2) y 3 (17.3)
y calcula el mximo de las tres, y se las enva al resto (17.3)
M3 M2 M1 M2 M1 M3 M1 M3 M2
U U D U D U D U U
Etapa 2:
Se marca M1 como entregable y se reordenan las colas
M1 se puede entregar en el nodo 3 porque ser el primero de la cola
M3 M2 M1 M2 M1 M3 M3 M2
U U D U D U U U
Etapa 2:
M1 se entrega en el nodo 3
M3 M2 M1 M2 M1 M3 M3 M2
U U D U D U U U
Etapa 3:
El Nodo 2 recibe las marcas asociada a M2 envidas por el nodo 1 (17.1) y 3 (19.3) ,
Calcula el mximo (19.3)
M3 M2 M1 M2 M1 M3 M3 M2
U U D U D U U U
Etapa 3:
El Nodo 2 recibe las marcas asociada a M2 envidas por el nodo 1 (17.1) y 3 (19.3) ,
Calcula el mximo (19.3)
Se la enva al resto
M3 M1 M2 M1 M3 M2 M3 M2
U D D D U D U D
Etapa 3:
M2 se marca como entregable y se reordenan las colas
M3 M1 M2 M3 M2 M3 M2
U D D U D U D
Etapa 3:
M2 se marca como entregable y se reordenan las colas
M1 se entrega en el nodo 2
M3 M1 M2 M3 M2 M3 M2
U D D U D U D
Etapa 4:
El Nodo 3 recibe las marcas asociada a M3 envidas por el nodo 1 (15.1) y 3 (18.2)
Calcula el mximo de todas (18.3)
M3 M1 M2 M3 M2 M3 M2
U D D U D U D
Etapa 4:
El Nodo 3 recibe las marcas asociada a M3 envidas por el nodo 1 (15.1) y 3 (18.2)
Calcula el mximo de todas (18.3)
Se las enva al resto
M1 M3 M2 M3 M2 M3 M2
D D D D D D D
Etapa 4:
Se marca M3 como entregable y se reordenan las colas
Se pueden entregar todos los mensajes en todos los nodos
El orden de entrega: M1, M3 y M2 (se asegura el orden de entrega en todos los nodos)
109
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Ejemplo
(0,0,0) (0,1,0)
P1
(0,1,1)
(0,0,0)
P2
(0,1,0) (0,1,1)
110
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Ejemplo
Vector enviado por el proceso 0: (4, 6, 8, 2, 1, 5)
Vector en el proceso 1: (3, 7, 8, 2, 1, 5)
Vector en el proceso 2: (3, 5, 8, 2, 1, 5)
Se puede entregar el mensaje enviado por el 0?
111
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Ejemplo
Vector enviado por el proceso 0: (4, 6, 8, 2, 1, 5)
Vector en el proceso 1: (3, 7, 8, 2, 1, 5)
Vector en el proceso 2: (3, 5, 8, 2, 1, 5)
Se puede entregar el mensaje enviado por el 0?
q Al 1 si:
Es el siguiente en la secuencia de mensajes recibidos del 0 y
no se han perdido mensajes.
q Al 2 no:
Es el siguiente en la secuencia de mensajes recibidos del 0.
Le falta un mensaje del proceso 1
112
Flix Garca Carballeira Sistemas Distribuidos (2016-2017)
Problemas de consenso
valor
Objetivo: que el conjunto de procesos consensuen un valor
q
(terminacin)
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 113
Aplicaciones
Transacciones distribuidas
En grupos de procesos
Eleccin de lder
Sincronizacin de relojes
Servidores replicados
ok to commit=> guardar
la peticin en un
Commit! Hacer los cambios
rea temporal y responder ok permanentes
ok to
commit?
ok to
commit?
ok
ok to
commit?
commit ok
Hacer los
cambios
permanentes
almacenamiento persistente
Cuando el proceso se recupera recupera la informacin
previamente guardada
q Se utilizan timeouts para evitar los bloqueos en el protocolo
Coordinador A B C
ok to
commit?
ok Proceso falla
Coordinador A B C
ok to
commit?
ok Proceso falla
timeout
Coordinador A B C
ok to
commit?
ok Proceso falla
abort
Coordinador A B C
ok to
commit?
ok
commit
recupere
El proceso C puede solicitar la decisin a alguno de los otros
participantes
decidir
Por qu?
q En un sistema asncrono: no se puede determinar si un
proceso ha fallado o no (puede ejecutar ms lento o sus
mensajes pueden retrasarse)
No existe un detector de fallos
En sistemas sncronos 3PC asegura seguridad y terminacin
2PC no asegura terminacin
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 128
Three-phase commit
canCommit?
yes Fase 1
prepareCommit
Fase 2
ACK
doCommit
haveCommitted Fase 3
canCommit?
yes Fase 1
READ
Se lee de R rplicas, se queda con la copia con la ltima
q
versin
WRITE
Hay que asegurarse que todas las rplicas se comportan
q
versin en W o ms rplicas.
R1W1 R2 W2 RT WT
1 5 1 5 1 25
1 5 2 4 2 20
1 5 3 3 3 15
2 4 2 4 4 16
2 4 3 3 6 12
3 3 3 3 9 9
Cul se elige?
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 136
Replicacin de datos utilizando 2PC
Sea un conjunto de procesos {P0, P1,...,Pn} que mantienen una rplica sobre
las que se hacen operaciones readi, updatei
Objetivo: definir dos operaciones distribuidas READ y UPDATE que son
disponibles incluso cuanto t < n procesos fallan y devuelven fallos
indistinguibles de aquellos que no fallan.
Se denota como qr el nmero de rplicas que deben leerse para una
operacin READ
Se denota como qu el nmero de rplicas que deben actualizarse para un
UPDATE.
Para utilizar esquemas basados en quorum se necesita:
q qr + qu > n
q qu+qu > n
UPDATE (Continuacin)
q Una rplica indica abortar si ella tiene un n de versin
mayor
q En caso contrario bloquea las READ y espera en ok to
commit
q El coordinador comprometer el resultado si slo recibe
mensajes commit de al menos qu rplicas. En caso contrario
aborta.
q Las operaciones READ se retrasan durante el estado ok to
commit.
q Si llegan operaciones UPDATE en ok to commit las aborta
fallos
Resuelve los problemas de particin (no puede haber dos
q
mayoras simultneamente)
Fase 1 (Propuesta):
q Un nodo decide hacer una propuesta (lder)
q Elige N > Nh
q Enva (propuesta, N) a todos los nodos
q Cuando se recibe (propuesta, N)
IF (N < Nh)
Responder rechazar
ELSE
Nh = N
Responder (propuesta-OK, Na, Va)
No aceptar ninguna propuesta futura con valor < N
Fase 2 (Aeptar):
q IF el lider obtiene una mayora de OK
V = valor del Na recibido ms alto
IF (V = null) el lider elige cualquier valor V
Enva (aceptar, N, -V) a todos los nodos
q IF el lider no obtiene mayora
Espera y reinicia el protocolo
q Cuando un nodo recibe (aceptar, N, V)
IF (N < Nh)
Responde con rechazar
ELSE
Na = N; Va = V; Nh=N
Responder OK
Fase 3 (decidir)
q Si el lider recibe OK de una mayora
Enva (decidir, Va) a todos los nodos
q Sino espera (aleatoriamente) y reinicia el protocolo
parada
Flix Garca Carballeira Sistemas Distribuidos (2016-2017) 154
Definicin del problema
nodo i 0
nodo j
1 emisor
0
nodo i 0
nodo j
* * * *
Nodo 4 Nodo 2
* * * E * A * *
Nodo 3
* * A *
* * * *
Nodo 4 Nodo 2
E A A E R A A E
Nodo 3
R A A E
V3(1) V3(2) V3(3) V3(4)
* * * *
Nodo 4 Nodo 2
E A A E V4(j) V2(j) R A A E
R E V1(j) V1(j) R R
V2(j)
Nodo 3 V3(j)
R A R E
R A A E V3(j)
R A V3(j) V4(j) E A
E R V1(j)
Vi(1) Vi(2) Vi(3) Vi(4) Vi(1) Vi(2) Vi(3) Vi(4)
R E V2(j)
E A V3(j)
Vi(1) Vi(2) Vi(3) Vi(4)
Vi(j) -> La observacin que de j dice i
De comunicacin
q
Sj Si
Cij
Lij={m , , m } 1 k
m3 m3
m4 ya ha
m4 m4
llegado
m5 m5
Tipos de mensajes:
(order 10, $100): se piden 10 elementos y se transfiere $100
(5 widgets): se envan 5 elementos