Escolar Documentos
Profissional Documentos
Cultura Documentos
ndice
Introduccin Arquitecturas para computacin distribuida
Arquitecturas de computacin en Google
Modelo Map-Reduce y Pregel
Arquitectura cliente-servidor
Variaciones del modelo Aspectos de diseo del modelo cliente/servidor
Arquitecturas de los SD
Organizacin lgica de componentes de aplicacin distribuida
Cmo es su patrn de interaccin Qu roles ejercen los procesos involucrados Y cul es su correspondencia con nodos de SD fsico Topologa de la aplicacin distribuida
Grado de acoplamiento
Sea cual sea el modelo, conlleva interaccin entre entidades Interaccin tradicional implica acoplamiento espacial y temporal Desacoplamiento espacial (de referencia)
Entidad inicia interaccin no hace referencia directa a la otra entidad
No necesitan conocerse entre s
Ej. Uso de memoria compartida 2 desacoplamientos son independientes entre s Estos modos de operacin indirectos proporcionan flexibilidad David Wheeler (el inventor de la subrutina):
All problems in computer science can be solved by another level of indirection...except for the problem of too many layers of indirection.
Fernando Prez Costoya
Arquitecturas para CD
Maestro-trabajador M/T (aka maestro-esclavo)
M va repartiendo trabajos entre nodos trabajadores T Tolerancia a fallos:
Cada de T: M reasigna sus trabajos pendientes (efectos laterales!) Cada de M: punto crtico de fallo Si n trabajos >> n trabajadores reparto automtico de carga
int MPI_Cart_create(MPI_Comm comm, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart); int MPI_Cart_shift(MPI_Comm comm_cart, int direction, int disp, int *rank_source, int *rank_dest); Using MPI William Gropp, Ewing Lusk y Anthony Skjellum (MIT Press)
Sistemas Operativos Distribuidos 6 Fernando Prez Costoya
Modelo diseado para procesar grafos de gran escala Computacin organizada en supersteps sncronos:
Inspirado en modelo Bulk Synchronous Parallel de Valiant Implementado como arquitectura maestro/trabajador
Sistemas Operativos Distribuidos 7
Cada vrtice recibe datos de otros vrtices por aristas de entrada Cambia su estado y genera datos por vrtices de salida Incluso puede cambiar topologa del grafo M reparte grafo entre T y controla sincronizacin de supersteps
Fernando Prez Costoya
Pregel: A System for Large-Scale Graph Processing Grzegorz Malewicz et al.; SIGMOD 10
Sistemas Operativos Distribuidos 9 Fernando Prez Costoya
Interaccin 1-N
Editor/subscriptor
Extensin de esquema guiado por eventos a SD Facilita el desacoplamiento espacial y, potencialmente, el temporal Interaccin M-N
Peer-to-peer
Procesos cooperantes con el mismo rol Interaccin N-N
Modelo cliente/servidor
Arquitectura asimtrica: 2 roles en la interaccin
Cliente: Solicita servicio Servidor: Proporciona servicio
Activo: inicia interaccin
Servidor cuello de botella problemas de escalabilidad Servidor punto crtico de fallo Mal aprovechamiento de recursos de mquinas cliente
Normalmente, acoplamiento espacial y temporal Servidor ofrece coleccin de servicios que cliente debe conocer Normalmente, peticin especifica recurso, operacin y args.
NFS: READ, file_handle, offset, count HTTP: GET /index.html HTTP/1.1
Sistemas Operativos Distribuidos 11 Fernando Prez Costoya
Esquema cliente/servidor
Interfaz de Servicio Peticin (args.)
Cliente
Respuesta
Servidor
Resp=Cdigo(args)
Mismas ops. para todos servicios pero sobre distintos recursos (REST) Ejemplo:
nfasis en recursos: ops. CRUD (HTTP GET, PUT, DELETE, POST) AddBook(nb) vs. PUT /books/ISBN-8448130014 HTTP/1.1
Fernando Prez Costoya
GUI GUI + parte de la lgica de negocio GUI + lgica de negocio GUI + lgica de negocio + parte de lgica de acceso
Fernando Prez Costoya
Diversos tipos: forward proxy, reverse proxy, gateways, ... Mejor si interfaz de servicio uniforme:
Proxy se comporta como cliente y servidor convencional Se pueden enganchar sucesivos proxies de forma transparente Esta caracterstica es una de las claves del xito de la Web
Cliente
Respuesta
Proxy
Peticin
Servidor
Sistemas Operativos Distribuidos 17 Fernando Prez Costoya
Open
Reverse
Cliente/servidor jerrquico
Servidor acta como cliente de otro servicio
Igual que biblioteca usa servicio de otra biblioteca
Uso de mltiples servidores (interaccin M-N) Si slo uno implicado en servicio reparto de carga
P.ej. leer el valor de un dato replicado en varios servidores Mejora latencia, escalabilidad y tolerancia a fallos P. ej. actualizar simultneamente dato replicado en varios servidores Mejora tolerancia a fallos pero no latencia y escalabilidad Esquema simtrico: Actualizar simultnea en todas las rplicas Esquema asimtrico: Actualizar en primario y propagar a secundarios
Fernando Prez Costoya
Si mltiples servidores deben cooperar para ofrecer servicio Necesidad de coherencia (sobrecarga para mantenerla):
C C C
p p
C S C C
p p
S S S
C C C
p
p p p
S S S
Cdigo mvil
Viaja el cdigo en vez de los datos y/o resultados Requiere:
Arquitecturas homogneas o Interpretacin de cdigo o Mquinas virtuales Cdigo por demanda (COD) Evaluacin remota (REV) Agentes mviles
Modelos alternativos
Servidor enva cdigo a cliente P.e. applets Cliente dispone de cdigo pero ejecucin debe usar recursos servidor P.ej. Cyber-Foraging Componente autnomo y activo que viaja por SD
Fernando Prez Costoya
Cliente
Resp=Cdigo(args)
Cdigo
Servidor
Evaluacin remota
Cliente
Respuesta
Servidor
Resp=Cdigo(args)
Servidor con ubicacin conocida en el sistema Opcin 1. Slo binder global: nombre de servicio [DMS+PS] Opcin 2. binder global (BG) + binder local (BL) en puerto conocido Uso de cach en clientes para evitar repetir traduccin Puede haber nivel adicional para facilitar migracin durante servicio
nombre de servicio [ID binario interno] [DMS+PS] Necesidad de localizacin: Broadcast o Servidor de localizacin BG: ID [DMS] ; BL: ID [PS]
ID servicio = [DM+pto]
M1 C DM2 + ptoS 1
M2 DM2 + ptoS S
Info. de contacto
Sistemas Operativos Distribuidos 28
Direccin de servicio
Fernando Prez Costoya
Binder ptoB
Fernando Prez Costoya
Binder ptoB
binder DM3+ptoB
Idsrv ptoS M2 1
DM2 + ptoS S
BL ptoL | BG DM3+ptoB
Fernando Prez Costoya
idsrv? M3
Binding
Caso con BG y BL + versiones:
Servidor:
Elige puerto local Informa a binder local del alta:
(id. servicio + versin) = puerto
Cliente:
Consulta a binder global
(id. servicio + versin) dir. mquina (id. servicio + versin) puerto
Fernando Prez Costoya
Uso de mquina de estados para seguimiento de clientes Solucin compleja y que no aprovecha paralelismo HW
Servidor concurrente
Solucin ms natural y que aprovecha paralelismo HW Threads (T) vs. Procesos (P)
Generalmente threads: Ms ligeros y comparten ms recursos
Gestin de conexiones
En caso de que se use un esquema con conexin 1 conexin por cada peticin
1 operacin cliente-servidor
conexin, envo de peticin, recepcin de respuesta, cierre de conexin
Ms sencillo pero mayor sobrecarga (9 mensajes con TCP!) Propuestas de protocolos de transporte orientados a C/S (T/TCP)
Servicio sin estado base de la propuesta REST Estado sobre servicios sin estado
Sistemas Operativos Distribuidos 39
f; inodo N
f; inodo N
Beneficios
Facilita integracin y despliegue independiente de componentes Facilita incorporacin de tcnicas de caching o polticas de seguridad
Si URI representa recurso Lo obtiene Si URI representa coleccin obtiene URIs miembros de coleccin
DELETE (CRUD): Borra recurso o coleccin PUT (CRUD): Crea (sobrescribe) recurso o coleccin POST (CRUD)? PUT vs. POST asunto polmico y confuso
URI de PUT identifica el recurso que se quiere crear /sobrescribir URI de POST identifica recurso que manejar contenido de POST PUT sustituye completamente contenido previo de recurso POST (no idempotente) permite actualizaciones parciales
Sistemas Operativos Distribuidos 49 Fernando Prez Costoya
Leases
Mecanismo para mejorar tolerancia a fallos en SD Modo de operacin
Deteccin y tratamiento de cadas de clientes y servidores
Servidor otorga a cliente un lease que dura un plazo de tiempo Cliente debe renovar lease antes de fin de plazo Servidor gestiona algn tipo de recurso vinculado con un cliente Si cliente cae y no renueva el lease, recurso abandonado Si servidor cae, en reinicio obtiene renovaciones
Puede reconstruir los recursos Excepto por leases, cliente no tiene por qu contactar con servidor
m1 libre m2 C2 m3 libre
m1 C1 m2 C2 m3 libre
m1 C1 m2 C2 m3 libre
Sistemas Operativos Distribuidos 54
cola de mensajes de S S
Fernando Prez Costoya
m1 C1 m2 C2 m3 libre
c3 lock(m3)
cola de mensajes de S S
Fernando Prez Costoya
Prdida de peticin o de respuesta (slo si comunicacin no fiable) Cada del servidor Cada del cliente
Fernando Prez Costoya
Alternativas:
Uso de pocas:
Peticiones de cliente llevan asociadas un n de poca En rearranque de cliente C: transmite (++n de poca) a servidores Servidor aborta servicios de C con n de poca menor
Uso de leases:
Servidor asigna lease mientras dura el servicio Si cliente no renueva lease se aborta el servicio
Modelo editor/subscriptor
Sistema de eventos distribuidos (Jini, s. eventos/notifi. CORBA) Suscriptor S (subscriber) muestra inters por eventos
Se subscribe a ciertos eventos: filtro por tipo, por tema, por contenido Se enva a subscriptores interesados en el mismo
Ops.: suscribir [alta/baja] (S); publicar (E); notificar (S) Paradigma asncrono y desacoplado en espacio
Editores y subscriptores no se conocen entre s ( cliente/servidor) En algunos casos tambin desacoplado en el tiempo Alternativa, pull: suscriptor pregunta si hay notificaciones
Calidad de servicio (orden entrega o prdida de notificaciones) Posible uso de leases en suscripcin
Sistemas Operativos Distribuidos 61 Fernando Prez Costoya
Modelo editor/subscriptor
Su1 Su2 Su3 Su4
suscribe(ev5) notifica(ev5) suscribe(ev3) publica(ev5) suscribe(ev5) notifica(ev5) suscribe(ev1)
Ejemplo editor/suscriptor
Mercado burstil Tipo de evento
Cada valor (V) del mercado
Subscriptor
Proceso interesado (PI) en operaciones sobre un determinado valor
Editores
Proceso que realiza operaciones (PO) sobre un determinado valor
Ed
genera datos
imprime datos
almacena datos
proyecta datos
imprime datos
almacena datos
proyecta datos
Se1
Se2
Se3
Su1
Su2
Su3
Implementaciones editor/suscriptor
Su1 Su2 Su3 Su4 Ed3 Ed1 Ed2 Su1 Su2 Su3 Su4 Ed3 Int. Ed1 Ed2 Su1 Su2 Su3 Su4 Int. Int. Ed1 Ed2 Ed3
Int.
Volatilidad: Nodos entran y salen del SD; variabilidad en conectividad Capacidad de autogestin sin una autoridad global centralizada Y/O a colaboracin y comunicacin entre usuarios
Dedicados a compartir recursos (contenidos,UCP,almacn,...) Uso de red superpuesta (overlay): Red lgica sobre la fsica
Nodos de proceso como nodos de red Esquemas de encaminamiento y localizacin de recursos Difcil administracin y mayores problemas de seguridad
Fernando Prez Costoya
Entidad
Entidad Entidad
Entidad
Entidad
Interfaz de Dilogo
Sistemas Operativos Distribuidos 67
Entidad
Estructurados:
Topologa de conexin prefijada (p.e. anillo en protocolo Chord) Ubicacin de recursos predecible y dependiente de la topologa Generalmente definida por funcin hash distribuida
nica op.: lookup(clave recurso) dir IP mquina que posee recurso Protocolos Chord (Stoica et al. MIT 2001), CAN, Tapestry y Pastry Posesin de recursos cambia segn sistema evoluciona
A Survey of Peer-to-Peer Content Distribution Technologies S. Androutsellis-Theotokis y D. Spinellis; ACM Computing Surveys, 2004
Sistemas Operativos Distribuidos 70 Fernando Prez Costoya
A Survey of Peer-to-Peer Content Distribution Technologies S. Androutsellis-Theotokis y D. Spinellis; ACM Computing Surveys, 2004
Sistemas Operativos Distribuidos 71 Fernando Prez Costoya
Protocolo Chord
Hashing consistente asigna ID a clave recurso y a IP de nodo
ID con m bits tal que n recursos (K) + n nodos (N) << 2m IDs organizados en anillo mdulo 2m Proporciona distribucin uniforme
1er nodo ID(N) ID(K) sucesor(K) (NOTA: siguiendo mdulo) Cada nodo slo necesita almacenar quin es su sucesor directo
NOTA: nodo almacena tambin predecesor
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica et al.; ACM SIGCOMM01
Sistemas Operativos Distribuidos 73 Fernando Prez Costoya
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica et al.; ACM SIGCOMM01
Sistemas Operativos Distribuidos 74 Fernando Prez Costoya
Fingers en anillo 24
Wikipedia Chord
Sistemas Operativos Distribuidos 76 Fernando Prez Costoya
Bsqueda en anillo 24
Wikipedia Chord
Sistemas Operativos Distribuidos 77 Fernando Prez Costoya
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica et al.; ACM SIGCOMM01
Sistemas Operativos Distribuidos 78 Fernando Prez Costoya
Alta de un nodo
Operacin join de nodo N:
Conoce de alguna forma dir. de cualquier nodo existente N N calcula su ID y pide a N bsqueda de su sucesor N anota su sucesor (por ahora predecesor = NULO) Pregunta a su sucesor S por su predecesor P Si P mejor sucesor de N que S, fija P como sucesor de S Notifica a su sucesor para que reajuste predecesor, si necesario Actualizacin de tabla de fingers si necesario
Operacin peridica en cada nodo fix_fingers: Operacin peridica en cada nodo check_predecessor:
Comprueba si sigue vivo predecesor: No predecesor = NULO
Alta de un nodo
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica et al.; ACM SIGCOMM01
Sistemas Operativos Distribuidos 81 Fernando Prez Costoya
Np Nn
Ns
Np Nn
Ns
Np Nn
Ns
Np Nn
Ns
Estado inicial
join(Nn)
stabilize(Nn)
stabilize(Np)
Baja de un nodo
Baja voluntaria de nodo implica acciones complementarias
Devolver recursos a nuevo sucesor Informar a predecesor y sucesor para que reajusten estado
Solucin: Cada nodo guarda lista de sus m sucesores Qu pasa con los recursos del nodo cado?
Protocolo no especifica poltica de replicacin de recursos
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica et al.; ACM SIGCOMM01
Sistemas Operativos Distribuidos 84 Fernando Prez Costoya