You are on page 1of 53

Sistema

Distribuido
Google

ndice
Introduccin
Arquitectura global y principios de diseo
Paradigmas de comunicacin
Servicios de almacenamiento de datos y de coordinacin
Servicios de computacin distribuida
Conclusin
Bibliografa

Introduccin

Google [www.google.com] es una corporacin estadounidense con su


ocina central (Googleplex) en Mountain View, California, que ofrece
bsquedas en Internet y amplias aplicaciones web, obteniendo ingresos en
gran parte de la publicidad asociada a dichos servicios.
Google naci de un proyecto de investigacin en la Universidad de
Stanford, la compaa se puso en marcha en 1998. Desde entonces, ha
crecido hasta tener una posicin dominante en el mercado de bsquedas
en Internet, gran parte debido a la ecacia del algoritmo de clasicacin
utilizado en su motor de bsqueda.

Introduccin

Google es uno de los sistemas distribuidos ms complejos en uso y su


infraestructura ha satisfecho requisitos tan exigentes como: escalabilidad,
rendimiento, abilidad y transparencia.
Google se ha diversicado, y adems de ofrecer un motor de bsqueda es
ahora un actor importante en computacin en la nube ofreciendo un conjunto
de aplicaciones y servicios en la nube.

Introduccin
Motor de bsqueda de Google
Dada una consulta, devuelve una lista ordenada de los
resultados ms relevantes.
El motor de bsqueda consiste en un conjunto de
servicios:
Rastreo
Indexacin
Clasicacin

Introduccin
Motor de bsqueda de Google

Rastreo (crawling): : localizar y recuperar el contenido de la


Web y pasar el contenido sobre el subsistema de indexacin.
Esto se lleva a cabo por un servicio de software llamado
Googlebot y Caeine (2010).
Indexacin: produce un ndice invertido ordenado de los
contenidos Web
Relaciona palabras o recursos documentales con las
posiciones donde se encuentran en las pginas.
Tambin mantiene un ndice de enlaces: qu pginas
apuntan a una pgina web.

Introduccin
Motor de bsqueda de Google

Clasicacin: Importancia relativa de las pginas (PageRank)


Importancia: depende del nmero de enlaces que la
apuntan
Tambin considera:
la importancia de los sitios que apuntan
la posicin del enlace, el tamao de su letra o si est
en maysculas
proximidad de las palabras de la consulta.

Introduccin
Servicios en la nube
Aplicaciones Google como servicios:
Aplicaciones web: tratan de reemplazar al software tradicional
Programas omticos, calendarios, herramientas de colaboracin, etc.
Plataforma Google como un servicio:
APIs de sistemas distribuidos, para desarrollo de aplicaciones
Google AppEngine: Ofrece su infraestructura de sistemas distribuidos
como un servicio en la nube.
Se usa en aplicaciones internas y se ofrece acceso externo

Introduccin

10

Arquitectura global y principios de


diseo
La losofa clave de Google en trminos de infraestructura fsica
es el uso de un gran nmero de equipos bsicos para producir un
entorno rentable para el almacenamiento distribuido y
computacin.
La decisin de compra se basa en obtener el mejor rendimiento
por dlar en lugar de la rentabilidad absoluta.
Principio bsico: usar un gran nmero de PCs bsicos, para
construir un entorno efectivo de cmputo y almacenamiento
distribuido.
PC con 2 TB de disco y 16 GB de DRAM .
Versin adaptada del ncleo de Linux.

11

Arquitectura global y principios de


diseo
Por qu la eleccin de ordenadores bsicos?
En gran medida la fuente ms comn de fallos es debido
al software. 20 mquinas de media se reinician
diariamente por fallos del software.
Los fallos de hardware representan 1/10 de los fallos. En
torno al 2-3% de los PCs fallan por ao debido a errores de
hardware. De stos, el 95% se deben a fallos en los discos
o DRAM.
Esto justica la decisin de adquirir equipos bsicos; dado
que la gran mayora de los fallos se deben a software, no
vale la pena invertir en un hardware ms caro, ms able.

12

Arquitectura global y principios de


diseo
Arquitectura fsica de Google
Los PCs se organizan en racks de entre 40-80
Tiene un switch ethernet para conectividad interna y externa
Los racks se organizan en clsters
Son la unidad de gestin principal.
Contiene al menos 30 racks.
Dos switches para conectividad con el exterior: redundancia.
Los clsters estn en centros de datos de Google
La capacidad total de almacenamiento:
Cifras totales no divulgadas.
Alrededor de 200 clsters.
Un rack de 80 PCs proporciona 160 terabytes, un grupo de 30
rack - 4,8 petabytes, 200 grupos - 960 petabytes - 1 exabyte.

13

Arquitectura global y principios de


diseo

14

Arquitectura global y principios de


diseo

Amrica

Asia

Europa

Condado de Berkeley, Carolina del Sur

Condado de Mayes, Oklahoma

Hong Kong

Hamina, Finlandia

Council Blus, Iowa

Lenoir, Carolina del Norte

Singapur

Saint-Ghislain, Blgica

Condado de Douglas, Georgia

The Dalles, Oregn

Taiwn

Dubln (Irlanda)

Quilicura, Chile

15

Arquitectura global y principios de


diseo
Requisitos fundamentales
Escalabilidad:
1. Tratar con ms datos
2. Tratar con ms consultas y
3. Bsqueda de mejores resultados.

16

Arquitectura general y losofa de


diseo
Requisitos fundamentales
Fiabilidad:

Requisitos exigentes de disponibilidad


Mecanismos de deteccin, redundancia y tolerancia a fallos
Rendimiento:

Proporcionar respuesta rpida, aumenta las consultas


Respuesta: depende de los tiempo entre extremos
Transparencia:

Facilitar el desarrollo de nuevas aplicaciones

17

Arquitectura general y losofa de


diseo
Arquitectura general de los sistemas de Google

Capa inferior : Computacin fundamental


Capa intermedia: infraestructura distribuida comn que proporciona apoyo
middleware para la bsqueda y la computacin en la nube.
Capa superior: los servicios conocidos de Google y las aplicaciones en la
parte superior.

18

Arquitectura general y losofa de


diseo
Principios de diseo
Simplicidad:

El software hace una cosa y la hace bien.


APIs tan sencillas como sea posible.
Rendimiento:

Cada milisegundo cuenta.


Estimacin del rendimiento de un diseo: tamao de los
mensaje, acceso a disco, acceso mutex, etc.
Pruebas:

Pruebas exhaustivas al software.


Seguimiento para detectar y resolver fallos.

19

Paradigmas de comunicacin
Protocolo Buers (Invocacin remota)
Se usa para almacenamiento e invocacin
Proporciona un mecanismo para especicar y serializar datos
Neutral respecto al lenguaje y a la plataforma
Simple y muy eciente
Los mensajes se describen mediante un lenguaje
Conjuntos de campos enumerados con identicador nico.
Se indica el tipo de la informacin.
Etiquetas para caracterizar los campos: Requerido, opcional o
repetido.

20

Paradigmas de comunicacin
Ejemplo protocolo buers

21

Paradigmas de comunicacin
Protocolo Buers (Invocacin remota)
Formato ms sencillo que XML
Adaptado a las necesidades de Google
Ms rpido y conciso
Permite expresar servicios remotos
service SearchService {
rpc Search (RequestType) returns (ResponseType)
}

22

Paradigmas de comunicacin
Publicacin/Suscripcin
Diseminacin de eventos rpidamente y con garanta de abilidad a un
gran nmero de receptores
El sistema est basado en temas
Ms eciente que si estuviera basado en contenidos, aunque tiene
menos poder expresivo
Un evento: cabecera, conjunto de palabras clave e informacin
Suscripcin: indica un tema y un ltro sobre las palabras clave
Canales
Se proporcionan canales asociados a temas
Flujos de datos estticos, con alta transferencia de eventos (1Mbps)
Si un canal genera poco ujo, se incluye en otro

23

Paradigmas de comunicacin
Publicacin/Suscripcin
Se implementa como un conjunto de rboles
La raz es el tema
Las hojas son los suscriptores
Los ltros se aplican lo ms cerca de la raz posible
Fiabilidad: se mantienen rboles redundantes:
Al menos dos por tema
Calidad de servicio: se fuerza un lmite por usuario y por tema.

24

Servicio de almacenamiento de
datos y coordinacin
Sistema de cheros de google (GFS)
Acceso a datos no estructurados.
Optimizados para el estilo de datos y accesos requeridos por Google.

Chubby:
Cerrojos distribuidos para coordinacin distribuida.
Almacenamiento de pequeas cantidades de datos.

Bigtable:
Acceso a datos estructurados, en forma de tablas, que pueden ser
indexadas de varias formas, tanto por la o columna.
Base de datos distribuida que no proporciona todos los operadores
relacionales.

25

Servicio de almacenamiento de
datos y coordinacin
Google File System (GFS): Requisitos
Ejecuta sobre la plataforma de Google
Debe supervisar su funcionamiento y detectar, tolerar y recuperarse
de fallos

Optimizarse para el tipo de uso dentro de Google


El nmero de cheros no es muy grande. Lo es su tamao
El acceso es normalmente secuencial:
Lecturas secuenciales
Escrituras secuenciales, que aaden informacin al nal del chero

Acceso concurrente de lectura y escritura

Requisitos de la infraestructura Google


Es importante el ancho de banda, ms que la velocidad de respuesta

26

Servicio de almacenamiento de
datos y coordinacin
Google File System (GFS): Interfaz
Interfaz de un sistema de cheros convencional
Espacio de nombres jerrquico. Ficheros identicados por la ruta
donde se encuentran.
Operaciones comunes: crear, borrar, abrir, cerrar, leer, escribir.
Operaciones especiales:
Snapshot: Mecanismo eciente para copiar un chero o una
estructura de directorios
Record Append : Mltiples clientes aaden informacin al nal
del chero

27

Servicio de almacenamiento de
datos y coordinacin
Google File System (GFS) : Arquitectura
Almacenamiento en trozos (chunks) de 64MB
GFS relaciona cheros con trozos

Cada grupo (clster) de GFS tiene un maestro y varios


servidores de trozos
El maestro gestiona los metadatos de los cheros:
Espacio de nombres, control de acceso, los trozos que lo
forman

28

Servicio de almacenamiento de
datos y coordinacin
Google File System (GFS) : Arquitectura

Funcionamiento:
Cuando recibe una peticin de un cliente, el maestro le indica un un
primario y las rplicas restantes.
El cliente manda datos a las rplicas, que los guardan en buer.
Cuando las rplicas reconocen la recepcin de los datos, ordena al
primario la escritura, impone el orden y lo aplica localmente.
Luego, ordena a las rplicas el mismo orden y mandan reconocimiento.
Si se reciben las conrmaciones, el primario informa del xito de la
operacin. En caso contrario, se informa del fallo. Entonces se vuelve a
realizar la operacin. Si persiste el fallo, puede haber incoherencias.

29

Servicio de almacenamiento de
datos y coordinacin
Chubby
Proporciona cerrojos distribuidos para sincronizar actividades en
un entorno de gran escala y asncrono.
Proporciona un sistema de cheros, con almacenamiento able
de cheros pequeos.
Permite seleccionar un primario entre un conjunto de rplicas.
Se usa como un servicio de nombres en Google.
El consenso distribuido es su funcionalidad ms importante.
Fiabilidad y disponibilidad, frente a rendimiento.

30

Servicio de almacenamiento de
datos y coordinacin
Chubby
Cada entidad con datos es un chero
Espacio de nombres: /ls/chubby_cell/directorio/.../chero

Una entidad combina un chero y un cerrojo.


Las operaciones sobre cheros
Se transere el chero completo.
Se realizan de forma atmica

Los cerrojos son informativos


El sistema no bloquea el acceso a los datos asociados.
Los programadores deben usarlos de forma adecuada

31

Servicio de almacenamiento de
datos y coordinacin
Chubby

32

Servicio de almacenamiento de
datos y coordinacin
Chubby : Funciones
Eleccin de un primario.
Los candidatos tratan de adquirir un cerrojo asociado a la eleccin.
El que tiene xito es el primero. Escribe en el chero su identidad.
Seleccin de un primario, basada en servicio de consenso.
Proporciona un servicio sencillo de eventos.
Pueden ser cambios en un chero, manejador invlido, etc.
Se ejecuta una funcin asncronamente (callback).
Otras caractersticas.
No permite mover un chero, ni enlaces simblicos .
Mantiene pocos metadatos.

33

Servicio de almacenamiento de
datos y coordinacin
Chubby : Arquitectura
Los componentes fundamentales:
Cliente, que emplea una biblioteca para llamadas.
Una clula Chubby.
Se comunican mediante RPC
La clula Chubby
Compuesta por cinco rplicas.
Al menos tres deben estar operativas.
Las rplicas se sitan en diferentes racks.
La clula suele estar en el mismo clster.
Las rplicas mantienen copias de una BD sencilla.
Slo el maestro inicia operaciones de lectura/escritura
de a BD.
Se emplea un protocolo de consenso

34

Almacenamiento de datos y
servicios de coordinacin
Arquitectura Chubby

35

Servicio de almacenamiento de
datos y coordinacin
Chubby : Arquitectura
Los clientes buscan al maestro y luego le envan sus peticiones
Si el maestro cae, las rplicas eligen otro.
Luego, lo puede detectar el cliente
Se establece una sesin entre el cliente y el maestro
Se mantiene mientras ambos estn operativos (KeepAlive)
La biblioteca copia localmente los cheros usados
Consistencia: para hacer una mutacin de un chero:
Se bloquea la operacin, hasta invalidar todas las caches
Las caches nunca se modican directamente.

36

Servicio de almacenamiento de
datos y coordinacin
Chubby : Consistencia entre rplicas

Basada en Paxos: familia de protocolos para consenso


distribuido para sistemas asncronos
No es posible garantizar consistencia.
Puede que no termine.

37

Servicio de almacenamiento de
datos y coordinacin
Algoritmo Paxos

38

Servicio de almacenamiento de
datos y coordinacin
BigTable
Sistema de almacenamiento distribuido para grandes
volmenes de datos estructurados
Gestiona el almacenamiento tolerante a fallos, creacin, borrado y
gestin de grandes tablas
Google Analytics almacena informacin de enlaces visitados
asociados con usuarios que visitan un sitio en una tabla (200TB) y
resume la informacin analizada en otra (20TB)

Las bases de datos relacionales no sirven


No proporcionan buen rendimiento y escalabilidad

Bigtable
Sigue el modelo de tablas.
Con una interfaz muy sencilla, adaptada a las necesidades de
Google.

39

Servicio de almacenamiento de
datos y coordinacin
BigTable: Interfaz
Acceso indexado por la, columna y marca de tiempo:
Filas:
Identicadas por una clave, que es una tira de caracteres de hasta 64KB
Ej. direccin de una web
Ordenadas lexicogrcamente por la clave
Filas relacionadas se almacenan juntas
Los accesos a las las son atmicos

Columnas:
Nombre de columna: Nombre de familia:calicador
Enfoque: pocas familias y muchas columnas
Ej. informacin de la direccin de web: enlaces, lenguajes, etc

Marca de tiempo (timestamp)


Una celda tiene varias versiones, indexadas con este parmetro.
Puede ser tiempo rea o tiempo lgico
Se puede aplicar un recolector de memoria

40

Servicio de almacenamiento de
datos y coordinacin
BigTable: Interfaz

41

Servicio de almacenamiento de
datos y coordinacin
BigTable: Interfaz
Proporciona funciones, como
Creacin y borrado de tablas
Creacin y borrado de familias de columnas
Acceso a datos de una la
Escritura y borrado de datos de las celdas
Mutaciones atmicas en las, como acceso, escritura y
borrado de datos
Iteracin sobre familias de columnas, incluyendo el uso de
expresiones regulares
Asociar metadatos con tablas y familias de columnas, como
listas de acceso

42

Servicio de almacenamiento de
datos y coordinacin
BigTable: Arquitectura
Se divide en tabletas, que son un conjunto de las
Relaciona las tabletas con cheros en GFS .
Garantiza equilibrado de la carga entre los servidores.

Clster: un instancia de Bigtable


Almacena y gestiona un conjunto de tabletas.
Arquitectura similar a GFS;: biblioteca, maestro y servidores de
tabletas.

43

Servicio de almacenamiento de
datos y coordinacin
BigTable: Almacenamiento de datos
El almacenamiento de tablas en GFS:
La tabla se dividen en tabletas, por las, con un tamao medio
100-200 MB
Una tableta se representa mediante
conjunto de cheros que almacenan datos en formato SSTable
otras estructuras de almacenamiento para las bitcoras
Relacin entre tabletas y SSTables mediante ndice jerrquico
SSTable:
mapa ordenado e inmutable de pares (clave, valor)
operaciones para acceso y gestin eciente
incluye un ndice, que se carga en memoria inicialmente
los cambios se escriben en una bitcora en GFS
las lecturas se hacen combinando los datos en SSTable y en la
bitcora

44

Servicio de almacenamiento de
datos y coordinacin
BigTable: Almacenamiento de datos
La relacin entre tabletas y cheros en memoria se gestiona en
una estructura en rbol, donde se almacenan metadatos y la
situacin de los datos de las tabletas

45

Servicio de almacenamiento de
datos y coordinacin
BigTable: Funcionamiento
Uso interesante de Chubby:
Mantiene un directorio en Chubby con cheros representado los
servidores de tabletas.
Los servidores obtienen un cerrojo sobre el chero.
Su existencia indica la correcta operacin del servidor.
Operacin del servidor de tableta
Los servidores supervisan su cerrojo. Si se pierde, se paran.
Intentan adquirir el cerrojo. Si el chero se borra, terminan.
Si el servidor debe terminar, libera el cerrojo.
Operacin del maestro
El maestro consulta el valor del cerrojo peridicamente.
Si est liberado, entonces intenta adquirirlo.
Si tiene xito, el problema est en el servidor.
Borra el chero y asigna la tableta a otro servidor.

46

Servicios de computacin
distribuida
MapReduce
Modelo sencillo de programacin para el desarrollo de aplicaciones
paralelas y distribuidas.
Fragmentacin de datos de entrada y anlisis y procesamiento de estos
fragmentos en paralelo.
Oculta los detalles de este enfoque al programador.

Interfaz de MapReduce:
Funcionamiento:
Partir los datos de entrada en un conjunto de trozos (chunks).
Procesamiento paralelo de los trozos y generacin de un resultado
intermedio.
Combinacin de los resultados intermedios .

Funciones:
Map: Parte de un conjunto de pares (clave, valor) y genera un conjunto
intermedio de pares del mismo tipo.
Reduce: Ordenacin por clave y generacin de valores para cada grupo.

47

Servicios de computacin
distribuida
MapReduce: Arquitectura
Biblioteca que permite al programador centrarse en las funciones
Map y Reduce
Se crean un conjunto de trabajadores
Un maestro para supervisar

48

Servicios de computacin
distribuida
MapReduce: Tolerancia de fallos
Garantiza el determinismo de las operaciones
El maestro comprueba si los trabajadores funcionan. Si falla:
Map: Se reprograma la operacin. Los resultados no estarn
disponibles, pues se escriben en almacenamiento local
Reduce: Se comprueba si se complet. Entonces, se usan los
datos que estarn en GFS. En caso contrario, se vuelve a realizar

Las salidas de los trabajadores se escriben atmicamente


Gestin de trabajadores lentos
Ocurre con cierta frecuencia (a veces problemas hardware).
Cuanto se est completando una operacin, lanza trabajadores
nuevos como respaldo a los lentos.

49

Servicios de computacin
distribuida
Sawzall
Lenguaje de programacin interpretado para realizar anlisis de
datos paralelos sobre grandes conjuntos de datos en entornos
altamente distribuidos
Tamao de programas, menor que con MapReduce Esquema de cmputo
dado y supone:
La ejecucin de ltros y agregadores es conmutativa respecto a los registros.
Se pueden ejecutar en cualquier orden
Las operaciones de agregacin son asociativas

50

Servicios de computacin
distribuida
Sawzall
Se proporcionan un conjunto de agregadores por defecto
Ejemplo

count: table sum of int;


total: table sum of oat;
x: oat = input;
emit count <- 1;
emit total <- x;

51

Conclusin
Se ha descrito como una empresa muy grande de Internet en este
caso Google ha abordado el diseo de un sistema distribuido para
ofrecer un excelente motor de bsqueda y un conjunto de
aplicaciones y servicios en la nube.
Conjunto de componentes y modelo fsico para el desarrollo de
aplicaciones en sistemas distribuidos.
Soluciones adaptadas a las necesidades de Google. Requisitos:
escalabilidad, rendimiento, abilidad, transparencia.
Entorno en continua evolucin

52

Bibliografa
(I)Coulouris, Dollimore, Kindberg and Blair. Distributed
Systems: Concepts and Design. Edition 5, Addison-Wesley
2012
(II)Centro de datos de Google. Consultado el 7 de mayo de
2013. http://www.google.com/about/datacenters/
(III)Dentro de Google. Consultado el 6 de mayo de 2013.
http://www.google.com/insidesearch/

Sistema Distribuido
Google

You might also like