Sistemas Operativos Distribuidos
Diseño de Sistemas Distribuidos: Google Alejandro Alonso Dpto. Ing. de Sistemas Telemáticos (Diciembre 2013) ©
Diseño de sistemas distribuidos:
Tabla de 1. Int Introd roducc ucción ión al al caso caso de de estud estudio io 2. Arqui Arquitect tectura ura globa globall princ principios ipios de dise dise!o !o ". #ar #aradi adigma gmas s de de comu comunic nicaci ación ón $. Servi Servicios cios de almac almacenami enamiento ento de de datos datos coordinac coordinación ión %. Ser Servic vicios ios de comput computaci ación ón distrib distribuid uida a &. 'esumen
Tabla de 1. Int Introd roducc ucción ión al al caso caso de de estud estudio io 2. Arqui Arquitect tectura ura globa globall princ principios ipios de dise dise!o !o ". #ar #aradi adigma gmas s de de comu comunic nicaci ación ón $. Servi Servicios cios de almac almacenami enamiento ento de de datos datos coordinac coordinación ión %. Ser Servic vicios ios de comput computaci ación ón distrib distribuid uida a &. 'esumen
1. Introducción al caso de estudio #resentación de la in(raestructura de )oogle *s uno de los sistemas distribuidos más complejos en uso Su in(raestructura +a satis(ec+o requisitos e,igentesescalabilidad rendimiento (iabilidad carácter abierto
Objetivo- organi/ar la in(ormación global +acerla 0til accesible universalmente unciones básicas de googleotor de b0squeda- dada una consulta retorna una lista ordenadas de re(erencias
1. Introducción al caso de estudio #roveedor de servicios en la nube- O(rece un conjunto de aplicaciones servicios en la nube
Motor de búsqueda Dada una consulta devuelve una lista ordenada de los resultados más relevantes Aspectos- rastreo inde,ación clasi(icación arquitectura Rastreo 3crawling 4- locali/ar obtener los contenidos de la 5eb- )ooglebot 6ee recursivamente un página 5eb obteniendo los enlaces plani(icando nuevas operaciones de rastreo 6a (recuencia de las visitas depende de cuanto cambia
Motor de búsqueda Actualmente emplea un sistema basado en una in(raestructura 3Percolator 4 que admite actuali/ación incremental de grandes conjuntos de datos
Indexación- produce un 7ndice invertido ordenado de los contenidos 8eb 'elaciona palabras o recursos documentales con las posiciones donde se encuentran en las páginas Tambi9n mantiene un 7ndice de enlaces- qu9 páginas apuntan a una página 5eb
lasi!icación- Importancia relativa de las páginas 3 PageRank 4 Importancia- depende del n0mero de enlaces que la apuntan Tambi9n considera: la importancia de los sitios que apuntan
: la posición del enlace el tama!o de su letra o si está en ma0sculas : pro,imidad de las palabras de la consulta
Motor de búsqueda: arquitectura original #ara comparar con la arquitectura actual
Ser"icios en la nube ;omputación en la nube ;onjunto de aplicaciones servicios de almacenamiento cómputo basados en Internet Su(icientes para la muc+os usuarios que les evita disponer de almacenamiento o aplicaciones locales
Aplicaciones )oogle como servicios Aplicaciones 5eb- tratan de reempla/ar al so(t5are tradicional #rogramas o(imáticos calendarios +erramientas de colaboración etc.
#lata(orma )oogle como un servicio-
Ser"icios en la nube A#Is de sistemas distribuidos para desarrollo de aplicaciones )oogle App*ngine- O(rece su in(raestructura de sistemas distribuidos como un servicio en la nube.
#$em%los de a%licaciones de Google "##icatio$
De scri#tio$
Gmail
Mail system with messages hosted by Google bt deskto p!like message management"
Google Docs
Web!based o##ice site spporting shar ed editing o# docments held on Google servers"
Google Sites
Wiki!like web sites with shared editing #acilities"
Google Talk
Spports instant te$t messaging and %oice over &'"
Google Calendar
Web!based calendar witb all data hosted on Google servers"
Google Wave
Collaboration tool integrating email( instant messaging( wikis and social networks "
GoogleNews
)lly atomated news aggregator site"
GoogleMaps
Scalable web!based world map inclding high!resoltion imagery and nlimited ser generated over lays"
Google Earth
Scalable near!*D view o# the globe with nlimited ser!generated overlays"
GoogleApp Engine
Google distribted in#rastrctr e made available to otside parties as a service +plat#orm as a service,"
#$em%los de a%licaciones de Google Diseño de sistemas distribuidos: Googe
Ull
%
UPM
2. &rquitectura global ' %rinci%ios de diseño: Modelo () sico #rincipio básico- usar un gran n0mero de #;s comunes para construir un entorno e(ectivo de cómputo almacenamiento distribuido #; con 2 T< de disco 1& )< de D'A =ersión adaptada del n0cleo de 6inu,
6a arquitectura es tolerante a (allos *l so(t5are es el origen de (allos. 2> máquinas en medias se re?arrancan diariamente por (allos de so(t5are *l +ard5are produce 1@1> de los (allos. Alrededor del " (allan al a!o. Bormalmente discos D'A
&rquitectura !)sica 6os #;s se organi/an en racCs de entre $>?> Tiene un s5itc+ et+ernet para conectividad interna e,terna
6os racCs se organi/an en clusters Son la unidad de gestión principal
;ontiene al menos ">
racCs Dos s5itc+es para conectividad con el e,terior- redundancia
&rquitectura !)sica 6os clusters están en centros de datos de )oogle 6a capacidad total de almacenamientoracC de > #;s en un cluster de ">- $E petabtes Alrededor de 2>> clusters ;i(ras totales no divulgadas
'acCs
l"A&
'acCs
l.
A&
S5itc+es
;luster
;luster 'acCs
S5itc+es ;luster Data centre arc+itecture To ot+er data centres and t+e Internet Diseño de sistemas distribuidos:
dit
Diseño de sistemas distribuidos:
&rquitectura !)sica
dit
&rquitectura !)sica
dit
*rinci%ios de diseño: Requi sitos !undamentales *scalabilidad )estionar más in(ormación 'esolver más consultas Obtener mejores resultados
iabilidad 'equisitos e,igentes de disponibilidad ecanismos de detección redundancia tolerancia a (allos
'endimiento
#roporcionar respuesta rápida aumenta las consultas 'espuesta- depende de los tiempo entre e,tremos
Apertura 3Openness4acilitar el desarrollo de nuevas aplicaciones
(Diciembre 2013) © DIT/UPM
Diseño de sistemas distribuidos: Googe
1&
In!raestructura de Google
Google a%%lications and ser"ices
Google in!rastructure +middle,are-
Google %lat!orm
(Diciembre
Diseño de sistemas distribuidos:
di UPM
Distributed computation
Data and coordination
Communication paradigms
Ma%Reduce
G(S
*rotocol bu!!ers
/ubb'
Sa,.all
0igtable
*ublis/1subscr ibe
*rinci%ios de diseño Simplicidad*l so(t5are +ace una cosa la +ace bien A#Is tan sencillas como sea posible
'endimiento ;ada milisegundo cuenta *stimación del rendimiento de un dise!o: Tama!o de mensajes acceso a disco acceso a mute, etc.
#ruebas
*rinci%ios de diseño #ruebas e,+austivas al so(t5are Tra/as bitácoras
". *aradigmas de comunicación: In"ocación remota Protocol buffersSe usa para almacenamiento e invocación #roporciona un mecanismo para especi(icar seriali/ar datos Beutral respecto al lenguaje a la plata(orma Simple mu e(iciente
6os mensajes se describen mediante un lenguaje ;onjuntos de campos enumerados con identi(icador 0nico Se indica el tipo de la in(ormación
*tiquetas para caracteri/ar los campos'equerido opcional o repetido
In"ocación remota
message 'oo re*uired stri$g tite F 1+ re#eated stri$g aut,or F 2+ e$um -tatus I. P--
?
G
PU'4I-5D . l ; UT 6 7 6 PI.T 2+ } message 'oo-tats re*uired i$t32 saes 1+ o#tio$a i$t32 citatio$ s F 2+ o#tio$a -tatus boostatus F 3 8de9aut F PU'4:-5D ;+ ; o#tio$a 'oo-tat s statistics F 3+ re#eated stri$g e<=ord . &+ }
(Diciembre 2013) DITIUPM
dit Diseño de sistemas distribuidos: Googe
1>
UPM
6a especi(icación se compila Se genera código para manipular los mensajesunciones- getters setters borrado comprobar e,istencia de campos toString
#ara los campos repetidosSon una especie de arras unciones- longitud obtener valor cambiar valor a!adir a!adir conjunto de valores borrar.
ormato más sencillo que H6
Adaptado a las necesidades de )oogle : Bo considera interoperabilidad : Bo es autode(inido- los mensajes no incluen metadatos
ás rápido conciso
#ermite e,presar servicios remotos service Searc+Service I rpc Searc+ 3'equestTpe4 returns
3'esponseTpe4
J
*l compilador produce un inter(a/ abstractos un suplente 3stub4 para +acer invocaciones remotas Agnóstico respecto al protocolo de '#; subacente Inter(a/ abstracto- 'pc;+annel 'pc;ontroller
Sólo un parámetro de entrada uno de salida
acilita e,tensibilidad evolución del so(t5are #one la complejidad en los datos en lugar de en la inter(a/
#ditor2Suscri%tor Diseminación de eventos rápidamente con garant7a de (iabilidad un gran n0mero de receptores *l sistema está basado en temas ás e(iciente que si estuviera basado en contenidos aunque tiene menos poder e,presivo Kn evento- cabecera conjunto de palabras clave e in(ormación Suscripción- indica un tema un (iltro sobre las palabras clave
;anales Se proporcionan canales asociados a temas
#ditor2Suscri%tor lujos de datos estáticos con alta trans(erencia de eventos 31bps4 Si un canal genera poco (lujo se inclue en otro
Se implementa como un conjunto de árboles 6a ra7/ es el tema 6as +ojas son los suscriptores 6os (iltros se aplican lo más cerca de la ra7/ posible
iabilidad- se mantienen árboles redundantes Al menos dos por tema
;alidad de servicio- se (uer/a un l7mite por usuario por tema.
Resumen de decisiones de diseño eme$t
Desig$ c,oice
atio$ae
Trade?o99s
'rotocol b##ers
The se o# a langage #or s peci#ying data #ormats
)le$ible in that the same langage can be sed #or seriali/ing data #or storage or commnication
Simplicity o# the langage
0ack o# E##icient e$pressiveness when implementation compared( #or e$ample( with 1M0
Spport #or a style o# 2'C +taking a single message as a parameter and retming a single message as reslt,
More e##icient( e$tensible and spports service
0ack o# e$pressiveness when compared with other 2'C or 2M&
'rotocol!agnostic design
Di##erent 2'C implementation
No common semantics #or 2'C e$changes
Resumen de decisiones de diseño s can be sed
(Diciembre 2013) DITIUPM
dit
Diseño de sistemas distribuidos: Googe
2&
UPM
Resumen de decisiones de diseño
'blish!sbscribe
Topic!based approach
Spports e##icient implementation
0ess e$pressive than content! based approaches +mitigated by the additional #iltering capabilities,
2eal!time and reliability garantees
Spports maintenance o# consistent views in a manner
Additional algorithrnic spport re3ired with associated overhead
Diseño de sistemas distribuidos: Googe
Resumen de decisiones de diseño
dit
UPM
$. Ser"icios de almacenamiento de datos ' coordinación Sistema de (ic+eros distribuido 3)S4 Acceso a datos no estructurados Optimi/ados para el estilo de datos accesos requeridos por )oogle
;+ubb;errojos distribuidos para coordinación distribuida Almacenamiento de peque!as cantidades de datos
Acceso a datos estructurados en (orma de tablas que pueden ser inde,adas de varias (ormas como por (ila o columna
Sistema de !ic/eros Google: Requisitos *jecuta sobre la plata(orma de )oogle Debe supervisar su (uncionamiento detectar tolerar recuperarse de (allos
Optimi/arse para el tipo de uso dentro de )oogle *l n0mero de (ic+eros no es mu grande. 6o es su tama!o *l acceso es normalmente secuencial: 6ec 6ectura turas s secu secuenci enciales ales : *scrituras secuencia secuenciales les que a!aden in(ormación al (inal del del (ic+ero
Acceso concurrente concurrente de lectura lectura escritura
Sistema de !ic/eros Google: Requisitos 'equisitos de la in(raestructura )oogle *s importante el anc+o de banda más que la velocidad de respuesta
Sistema de !ic/eros Google: Inter!a Inter(a/ de un sistema de (ic+eros convencional *spacio de nombres jerárquico. ic+eros identi(icados por el camino donde se encuentran. Operaciones comunes- crear borrar abrir cerrar leer escribir. Operaciones especialesSnapshot - ecanismo e(iciente para copiar un (ic+ero o una estructura de directorios
Sistema de !ic/eros Google: Inter!a Record Append - 0ltiples clientes a!aden in(ormación al (inal del (ic+ero.
&rquitectura de G(S Almacenamiento en tro/os 3chunks4 de &$< )S relaciona (ic+eros con tro/os
;ada grupo 3cluster 4 de )S tiene un maestro varios servidores de tro/os *l maestro gestiona los metadatos de los (ic+eros*spacio de nombres control de acceso los tro/os que lo (orman
&rquitectura de G(S (Diciembre 2013) © DIT/UPM
Diseño de sistemas distribuidos: Googe
2>
6os tro/os están replicados 3por de(ecto tres veces4 *l maestro gestiona las r9plicas
6os metadatos se almacenan en una bitácora para recuperación de (allos Bo se guarda la locali/ación de r9plicas se consultan los tro/os
*l maestro es 0nico pero la bitácora de operaciones se almacena en máquinas remotas *l maestro centrali/ado tiene una visión global del sistema de (ic+eros optimi/a su (uncionamiento
*l maestro in(orma del tro/o 3incluidas r9plicas4 donde están los datos requeridos el cliente accede a ellos-
*l tama!o de los tro/os 'educe la necesidad de contactar con el maestro 'educe la cantidad de metadatos a gestionar
#roblemasL está en desarrollo un maestro distribuido *l maestro se convierte en un cuello de botella *l tama!o de los metadatos de un maestro aumenta no es posible mantenerlos en memoria
;ac+e en el cliente- limitada a los metadatos del tro/o. Se reducen problemas de co+erencia
;ac+e en el servidor sólo la que reali/a 6inu,
onsistencia en G(S Becesaria consistencia entre r9plicasSe relaja la co+erencia aumenta el rendimiento
uncionamiento;uando recibe un petición de un cliente el maestro le indica un primario las r9plicas restantes *l cliente manda datos a las r9plicas que los guardan en bu((er ;uando las r9plicas reconocen la recepción de los datos ordena al primario la escritura impone el orden lo aplica localmente 6uego ordena a las r9plicas el mismo orden mandan reconocimiento
onsistencia en G(S Si todos correctos el primario in(orma del 9,ito de la operación. *n caso contrario se in(orma del (allo. *ntonces se vuelve a reali/ar la operación. Si persiste el (allo puede +aber inco+erencias
/ubb' #roporciona cerrojos distribuidos para sincroni/ar actividades en un entorno de gran escala as7ncrono #roporciona un sistema de (ic+eros con almacenamiento (iable de (ic+eros peque!os Seleccionar un primario entre un conjunto de r9plicas Se usa como un servicio de nombres en )oogle *l consenso distribuido es su (uncionalidad más importante
/ubb' Mincapi9 en (iabilidad disponibilidad (rente a rendimiento
;ada entidad@objeto con datos es un (ic+ero *spacio de nombres- @ls@c+ubbNcell@directorio@..@(ic+ero
Kna entidad combina un (ic+ero un cerrojo Se detectó la utilidad de a!adir in(ormación al cerrojo
6as operaciones sobre (ic+eros Se trans(iere el (ic+ero completo Se reali/an de (orma atómica
6os cerrojos son in(ormativos
*l sistema no bloquea el acceso a los datos asociados 6os programadores deben usarlos de (orma adecuada
Inter!a. de oe
#eratio$
99ect
General
#e$
4pens a given named #ile or directory and retrns a handle
@ase
Closes the #ile associated with the handlc
Deet
Deletes the #ile or directory
e
)ile
Get@o$te$ts"$d-tat
2etrns +atomically, the whole #ile contents and metadata associated with the #ile
Get-tat
2etrns 5st the metadata
eadDir
-et@o$te$ts
0ock
-et"@4 "c*uire Tr<"*uire
eeas e
2etrns the contents o# a directory !that is( the names and metadata o# any children Writes the whole contents o# a #ile +atomically,
W rites new access control list in#ormation Ac3ires a lock on a #ile Tries to ac3ire a lock on a #ile 2elcases a lock
dit
Inter!a. de (Diciembre 2013) DITIUPM
Diseño de sistemas distribuidos: Googe
3A
UPM
(unciones de /ubb' *lección de un primario- elección sobre consenso 6os candidatos tratan de adquirir un cerrojo asociado a la elección *l que tiene 9,ito es el primero. *scribe en el (ic+ero su identidad Selección de un primario basada en servicio de consenso
#roporciona un servicio sencillo de eventos #ueden ser cambios en un (ic+ero manejador inválido etc. Se ejecuta una (unción as7ncronamente 3 callback 4
(unciones de /ubb' Otras caracter7sticas Bo permite mover un (ic+ero ni enlaces simbólicos antiene pocos metadatos
&rquitectura de /ubb' 6os componentes (undamentales;liente que emplea una biblioteca para llamadas Kna c9lula ;+ubb Se comunican mediante '#;
6a c9lula ;+ubb ;ompuesta por cinco r9plicas : Al menos tres deben estar operativas
6as r9plicas se sit0an en di(erentes racCs 6a c9lula suele estar en el mismo cluster
&rquitectura de /ubb' 6as r9plicas mantienen copias de una
&rquitectura de /ubb' ;+ubb cell
;lient
;+ubb client libr ar /
6og
1
6ocal data? 6 base
6
O!aps
6
6
P
6og
6ocal data base
3Qaps+
: :
:
06og P
R
6
6ocal
1
denotes current master
l
Snaps+otq
6
data? base 1
&rquitectura de /ubb'
dit 3%
UPM
6os clientes buscan al maestro le env7an peticiones Si el maestro cae las r9plicas eligen otro
Se establece una sesión entre el cliente el maestro Se mantiene mientras ambos están operativos 3 eepAli!e4 6a biblioteca copia localmente los (ic+eros usados
;onsistencia- para +acer una mutación de un (ic+eroSe bloquea la operación +asta invalidar todas las cac+es 6as cac+es nunca se modi(ican directamente
onsistencia entre las r3%licas
;aracter7sticas del entorno 6as r9plicas operan a di(erente velocidad pueden (allar Tienen acceso a almacenamiento estable persistente que sobrevive a los (allos 6os mensajes se pueden perder reordenar o duplicar. Se env7an sin corrupción se puede retrasar un tiempo arbitrario
onsistencia entre las r3%licas Acuerdo- r9plicas guardan el mismo valor en bitácoras 6a maor7a de las r9plicas (uncionan el tiempo su(iciente con su(iciente estabilidad de la red
#ropiedades de vivacidadSi +a una maor7a estable de servidores si uno del conjunto inicia una actuali/ación algunos miembros del mismo ejecutarán la operación en alg0n momento Si un servidor s ejecuta una operación e,iste un conjunto de servidores con s r si no +a (allos entonces r ejecutará la actuali/ación
;aracter7sticas del algoritmo*l algoritmo debe elegir un coordinador que puede (allar 6os mensajes llevan el n0mero de secuencia del coordinador t
*n la elección se env7a un n0mero 0nico maor que el observado- s s mod n F i r s es el menor valor t : n- n0mero de r9plicas
: ir - identi(icador de la r9plica > UF i r UF n?1
;aracter7sticas del algoritmo6as r9plicas responden: #rometen seguir a la r9plica pues no +an observado un n0mero maor : AcC negativo no votan por este coordinador e indican el maor n0mero observado ;oordinador- la r9plica con más promesas recibidas 3quorum4 *l coordinador elige un valor manda el valor al quorum 6as r9plicas aceptan el valor mandan un acC Si la maor7a de las r9plicas aceptan se env7a con(irma el valor Si no el coordinador abandona la propuesta se inicia elección
*s necesario acuerdo en una secuencia de valores ulti?#a,os- se elige un coordinador para un conjunto de valores
;onsistencia entre las r9plicas
Step 1- electing a coordinator
Propase "se#$number%
;oordinator
Promise
'eplicas
dit
Step 2- seeCing consensus
Accept "!alue%
;oordinator
Acknowledgement
de
'eplicas
di
Step "- ac+ieving consensus
@ommit 'eplicas
0igtable Sistema de almacenamiento distribuido para grandes vol0menes de datos estructurados )estiona el almacenamiento tolerante a (allos creación borrado gestión de grandes tablas )oogle Analtics almacena in(ormación de enlaces visitados asociados con usuarios que visitan un sitio en una tabla 32>>T<4 resume la in(ormación anali/ada en otra 32>T<4
6as bases de datos relacionales no sirven Bo proporcionan buen rendimiento escalabilidad
0igtable Sigue el modelo de tablas ;on una inter(a/ mu sencilla adaptada a las necesidades de )oogle
Inter!a de 0igtable Acceso inde,ado por (ila columna marca de tiempoilas: Identi(icadas por una clave que es una tira de caracteres de +asta &$W< : *j. dirección de una 5eb : Ordenadas le,icográ(icamente por la clave : ilas relacionadas se almacenan juntas : 6os accesos a las (ilas son atómicos
;olumnas: Bombre de columna- Bombre de (amilia-cali(icador : *n(oque- pocas (amilias muc+as columnas : *j. in(ormación de la dirección de 5eb- enlaces lenguajes etc
arca de tiempo
Inter!a de 0igtable : Kna celda tiene varias versiones inde,adas con este parámetro : #uede ser tiempo real o tiempo lógico
lnteña de 0igtable ;olumn ( amilies and quali(iers ;1X
;"Xq1
;2Xq1
89: .
'o5s
Rs
6 ; timestam#s
tF Y tF"
lnteña de 0igtable
dit
UPM
Inter!a de 0igtable #roporciona (unciones como ;reación borrado de tablas ;reación borrado de (amilias de columnas Acceso a datos de una (ila *scritura borrado de datos de las celdas utaciones atómicas en (ilas como acceso escritura borrado de datos Iteración sobre (amilias de columnas incluendo el uso de e,presiones regulares
Inter!a de 0igtable Asociar metadatos con tablas (amilias de columnas como listas de acceso
&rquitectura de 0igtable Se divide en tabletas que son un conjunto de (ilas 'elaciona las tabletas con (ic+eros en )S )aranti/a equilibrado de la carga entre los servidores
;luster- una instancia de
&lmacenamiento de datos en 0igtable *l almacenamiento de tablas en )S6a tabla se dividen en tabletas por (ilas con un tama!o medio 1>>?2>> < Kna tableta se representa mediante : conjunto de (ic+eros que almacenan datos en (ormato SSTable : otras estructuras de almacenamiento para las bitácoras
'elación entre tabletas SSTables mediante 7ndice jerárquico
SSTable-
&lmacenamiento de datos en 0igtable mapa ordenado e inmutable de pares 3clave valor4 operaciones para acceso gestión e(iciente inclue un 7ndice que se carga en memoria inicialmente los cambios se escriben en una bitácora en )S las lecturas se +acen combinando los datos en SSTable en la
&lmacenamiento de datos en 0igtable
2emtable
(eld in ma)n memor*
#ersistent log
(eld)n+,S
i
-r)te
SSTable (iles
dit
&lmacenamiento de datos en 0igtable (Diciembre 2013) - DITIUPM
Googe
Diseño de sistemas distribuidos:
A2
UPM
6a relación entre tabletas (ic+eros en memoria se gestiona en una estructura en árbol donde se almacenan metadatos la situación de los datos de las tabletas
Su%er"isión del !uncionamiento Kso interesante de ;+ubbantiene un directorio en ;+ubb con (ic+eros representado los servidores de tabletas 6os servidores obtienen un cerrojo sobre el (ic+ero Su e,istencia indica la correcta operación del servidor Operación del servidor de tableta : 6os servidores supervisan su cerrojo. Si se pierde se paran : Intentan adquirir el cerrojo. Si el (ic+ero se borra terminan : Si el servidor debe terminar libera el cerrojo
Operación del maestro : *l maestro consulta el valor del cerrojo periódicamente
Su%er"isión del !uncionamiento : Si está liberado entonces intenta adquirirlo : Si tiene 9,ito el problema está en el servidor :
#quilibrado de carga *l maestro tiene una visión global del sistema Servidores e,istentes asignación de tabletas del cluster Asigna tabletas a servidores seg0n su carga
*l maestro tiene otro cerrojo Si se pierde el maestro se para *l sistema sigue operando aunque sin (unciones de control Al crear un nuevo maestro: Se asegura de que es el 0nico : 'ecupera in(ormación de estado de los servidores
Resu Re sume men n de de deci cisi sion ones es de di dise seño ño eme$t G7-
@,ubb<
'igtabe
Desig$ c,oice
atio$ae
Trade?o99s
Wold be Wold be vcr y ine##i eient #or random access to small parts o#lile s
The se o# a large chnk si/e +=> megabytes,
Sited to the si/e o# #iles in G)S< e##icient #or large sc3cntial reads and appends< minimi/es the amont o#metadata
The se o#a ccntrali/ed master
The master maintains a global view that in#onns managcmcnt decisions< simpler to implement
Single point o# #ailre Singl +mitigatcd by maintaining replicas o# operations logs,
Separa Sep aratio tion n o# cont control rol and data #lows
?igh!pcr# ?igh!p cr#orma ormanee nee #ile acc access ess with minimal master involv ement
Complicates thc client library as it mst deal with both the mas ter and chnkservers
2ela$ed co cons nsis iste tenc ncy y modcl
?igh pe ?igh per# r#or orman mance ce(( e$plo e$ploit itin ing g semantics o#the G)S operations
Data may be inconsistent( in panic in panic lar dplica ted
Combined lock and #ile abstraction
Mltiprpose( #or c$amplc spporting elcctions
Nccd to nderstand and di&Tcrentiate between d?Tcrent #accts
Whole!#ile reading and writing
=er e##icient #or small #iles
lnappropriate #or large #iles
Clicnt Clic nt ca cach chin ing g wi with th strict consistcncy
Detcr Det crmi mini nist stic ic sema semant ntic icss
4vcrhead o#maintaining strict consistcncy
The se o# a table abstraction
Spports strctred data e ## i c i e n l l y
0ess e$pressive than a relational databas e
The se o#a ccntrali/ed master
As above( master has a global view < simp ler to im plem ent
Single point o# #ailre< po ssiblc botllen eck
Scparation o# control and data @lows
?igh!pcr#ormance data access with minimal master involvement
Emphasis on monitoring and load balanc ing
A bi bi li li ty ty to to s s pp pp or or t v er er y la rg rgc nmbers o# o# pa parallcl c li licnts
4 vc vc rh rh ca ca d a ss ss oc oc ia ia tc tc d w it ith m ai aintaining gl global st st"ates
dit
%. Ser"icios de com%utación distribuida: Ma%Reduce odelo sencillo de programación para el desarrollo de aplicaciones paralelas distribuidas ragmentación de datos de entrada análisis procesamiento de estos (ragmentos en paralelo Oculta los detalles de este en(oque al programador
Inter(a/ de ap'educe
*,presión en (orma de dos (unciones-
: ap- #arte #arte de un conjunto de pares pares 3clave valor4 valor4 genera genera un conjunto intermedio de pares del mismo tipo (Diciembre 2013) © DIT/UPM
Diseño de sistemas distribuidos: Googe
A!
#$em%los del uso de Ma%Reduce 7u$ctio$
$itia ste#
ord cou$t
Ma##,ase
$termediate ste#
educe #,ase
)or each occrrence o#
)or each word
word in data partition( emit B=ordE 6
the interrnediary set( cont the nmber o# ls
4tpt a line i( it matches a given pattem
Nll
in
Gre# -ort .F'FT,is r eies ,eai< t,eir o$ t,e i$t ermedia /e ste #
$ert ed i$d e
M er ge/sort a )or each entry in the inpt data( otpt the eaue e
Partitio$ data i$to9ied?siHe
'ar se the associated docments and otpt a B=ord E docment &D pair wherever that word e$ists
Nll
)or each word ( prodce a list o# +sorted, docment &Ds
dit
(Diciembre 2013) - DITIUPM
Diseño de sistemas distribuidos: Googe
.'
UPM
&rquitectura de Ma%Reduce
Tolerancia de )aranti/a el determinismo de las operaciones *l maestro comprueba si los trabajadores (uncionan. Si (allo: ap- Se reprograma la operación. 6os resultados no estarán disponibles pues se escriben en almacenamiento local : 'educe- Se comprueba si se completó. *ntonces se usan los datos que estarán en )S. *n caso contrario se vuelve a reali/ar
6as salidas de los trabajadores se escriben atómicamente
)estión de trabajadores lentos Ocurre con cierta (recuencia 3a veces problemas +ard5are4
Tolerancia de ;uanto se está completando una operación lan/a trabajadores nuevos como respaldo a los lentos
Sa,all 6enguaje de programación interpretado para reali/ar análisis de datos paralelos sobre grandes conjuntos de datos en entornos altamente distribuidos Tama!o de programas menor que con ap'educe
*squema de cómputo dado supone-
: 6a ejecución de (iltros agregadores es conmutativa respecto a los registros. Se pueden ejecutar en cualquier orden : 6as operaciones de agregación son asociativas
Se proporcionan un conjunto de agregadores por de(ectosumar crear una colección valor más com0n etc
*jemplo count- table sum o( intL total- table sum o( (loatL ,- (loat F inputL emit count U? 1L emit total U? ,L
Resumen de decisiones de diseño eme$t Ma#educe
-a=Ha
atio$ae
Trade?o99s
The se o# a common #ramework
?ides details o# paralleli/ation and distribtion #rom the programmer< improvemcnts to the in#rastrctre immediately e$ploited by all Map2edce applications
Design choices within the #ramework may not be appropriate #or ali styles o# distribted comptation
'rogramming o# system via two operations( ma# and reduce
%ery simple programming model allowing rapid dcvelopment o# comple$ distribted complations
Agaio( may not be appropriate #or all problem domains
&nherent spport #or #alt!tolerant distribted comptations
'rogrammer does not need to worry abot dealing with #alts +particlarly important #or long! rnning tasks rnning overa physical in#rastrctre where #ailres are e$pected,
4verhead associated with #alt!recovery stBrategies
'rovision o# a special i/ed programmmg langage #or distribted comptation
Again( spport #or rapid development o# o#ten comple$ distribted comptations with comple$ity hidden #rom the prograrnmer +even more so than with Map2edce,
Assmes that programs can be written in thc style spported +in terms o# #ilters and aggregators,
Desig$ c,oice
dit
4. Resumen )oogle proporciona un motor de b0squeda aplicaciones una plata(orma de cómputo en la nube In(raestructura )oogle ;onjunto de componentes modelo (7sico para el desarrollo de aplicaciones en sistemas masivamente distribuidos #riman soluciones adaptadas a las necesidades de )oogle. 'equisitos- escalabilidad rendimiento (iabilidad apertura *ntorno en continua evolución