Академический Документы
Профессиональный Документы
Культура Документы
Diseo de Sistemas
Distribuidos: Google
Alejandro Alonso
Dpto. Ing. de Sistemas Telemticos
(Diciembre 2013)
DIT/UPM
Tabla de
contenidos
Motor de bsqueda
Dada una consulta, devuelve una lista ordenada de
los resultados ms relevantes
Aspectos: rastreo, indexacin, clasificacin y
arquitectura
Rastreo (crawling): localizar y obtener los contenidos
de la web: Googlebot
Lee recursivamente un pgina web, obteniendo los enlaces y
planificando nuevas operaciones de rastreo
La frecuencia de las visitas depende de cuanto cambia
Motor de bsqueda
Actualmente emplea un sistema basado en una infraestructura
(Percolator) que admite actualizacin incremental de grandes
conjuntos de datos
Servicios en la nube
Computacin en la nube
Conjunto de aplicaciones y servicios de almacenamiento y
cmputo, basados en Internet
Suficientes para la muchos usuarios, que les evita disponer de
almacenamiento o aplicaciones locales
Servicios en la nube
APIs de sistemas distribuidos, para desarrollo de aplicaciones
Google AppEngine: Ofrece su infraestructura de sistemas
distribuidos como un servicio en la nube.
(Diciembre 2013)
DIT/UPM
Description
Gmail
Mail system with messages hosted by Google but desktop-like message management.
Google Docs
Web-based office suite supporting shared editing of documents held on Google servers.
Google Sites
Google Talk
Google Calendar
Google Wave
Collaboration tool integrating email, instant messaging, wikis and social networks .
GoogleNews
GoogleMaps
Scalable web-based world map including high-resolution imagery and unlimited user
generated overlays.
Google Earth
GoogleApp
Engine
(Diciembre 2013)
DITIUPM
Diseo de sistemas
distribuidos: Google
Ull
UPM
2. Arquitectura global y
principios de diseo: Modelo Fsico
Principio bsico: usar un gran nmero de PCs
comunes, 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
(Diciembre 2013)
DIT/UPM
Arquitectura fsica
Los PCs se organizan en racks de entre 40-80
Tiene un switch ethernet para conectividad interna y externa
Contiene al menos 30
racks
Dos switches para conectividad con el exterior: redundancia
Arquitectura fsica
Los clusters estn en centros de datos de Google
La capacidad total de almacenamiento:
rack de 80 PCs, en un cluster de 30: 4,9 petabytes
Alrededor de 200 clusters
Cifras totales no divulgadas
Racks
Racks
l.
l.AI
AI
Switches
Cluster
Cluster
Racks
Switches
Cluster
Data centre architecture
To other data centres and the Internet
(Diciembre 2013) DITIUPM
11
UPM
dit
12
UPM
Arquitectura fsica
dit
Arquitectura fsica
dit
Principios de diseo:
Requisitos fundamentales
Escalabilidad
Gestionar ms informacin
Resolver ms consultas
Obtener mejores resultados
Fiabilidad
Requisitos exigentes de disponibilidad
Mecanismos de deteccin, redundancia y tolerancia a fallos
Rendimiento
Apertura (Openness):
Facilitar el desarrollo de nuevas aplicaciones
14
Infraestructura de Google
Google platform
(Diciembre
2013)
DITIUP
M
15
di
UPM
Distributed computation
Communication paradigms
Sawzall
MapReduce
GFS
Protocol buffers
Chubby
Bigtable
Publish-subscr ibe
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 mensajes, acceso a disco, acceso a mutex, etc.
Pruebas
(Diciembre 2013)
DIT/UPM
17
Principios de diseo
Pruebas exhaustivas al software
Trazas y bitcoras
(Diciembre 2013)
DIT/UPM
18
3. Paradigmas de comunicacin:
Invocacin remota
Protocol buffers:
Se usa para almacenamiento e invocacin
Proporciona un mecanismo para especificar y serializar datos
Neutral respecto al lenguaje y a la plataforma
Simple y muy eficiente
Invocacin remota
message Book {
required string title = 1;
repeated string author =
2; enum Status {
IN PRESS = O
'
PUBLISHED = l ;
OUT_OF_PRINT = 2;
}
message BookStats {
required int32 sales = 1;
optional int32 citations = 2;
optional Status bookstatus = 3 [default = PUBLJSHED};
}
optional BookStats statistics =
3;
repeated string keyword = 4;
}
(Diciembre 2013)
DITIUPM
dit
19
UPM
La especificacin se compila
Se genera cdigo para manipular los mensajes:
Funciones: getters, setters, borrado y comprobar existencia de
campos, toString
(Diciembre 2013)
DIT/UPM
20
Ms rpido y conciso
(Diciembre 2013)
DIT/UPM
21
Editor/Suscriptor
Diseminacin de eventos rpidamente y con garanta
de fiabilidad un gran nmero de receptores
El sistema est basado en temas
Ms eficiente 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 filtro sobre las palabras clave
Canales
Se proporcionan canales asociados a temas
Editor/Suscriptor
Flujos de datos estticos, con alta transferencia de eventos
(1Mbps)
Si un canal genera poco flujo, se incluye en otro
Design choice
Rationale
Trade-offs
Protocol buffers
The use of a
language for
specifying data
formats
Flexible in that
the same
language can be
used for
serializing data
for storage or
communication
Simplicity of the
language
Lack of
Efficient
expressiveness when
implementation
compared, for
example, with XML
Support for a
style of RPC
(taking a single
message as a
parameter and
retuming a single
message as
result)
More efficient,
extensible and
supports
service
evolution
Lack of
expressiveness when
compared with other
RPC or RMI
packages
Protocol-agnostic
design
Different RPC
implementation
No common semantics
for RPC exchanges
(Diciembre 2013)
DITIUPM
dit
24
UPM
Publish-subscribe
Topic-based
approach
Supports
efficient
implementation
Real-time and
reliability
guarantees
Supports
maintenance of
consistent
views in a
timely
manner
Additional
algorithrnic support
required with
associated overhead
25
dit
UPM
4. Servicios de almacenamiento de
datos y coordinacin
Sistema de ficheros distribuido (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:
(Diciembre 2013)
DIT/UPM
26
(Diciembre 2013)
DIT/UPM
27
Arquitectura de GFS
Almacenamiento en trozos (chunks) de 64MB
GFS relaciona ficheros con trozos
Arquitectura de GFS
(Diciembre 2013) DIT/UPM
29
30
(Diciembre 2013)
DIT/UPM
31
Consistencia en GFS
Necesaria consistencia entre rplicas:
Se relaja la coherencia y aumenta el rendimiento
Funcionamiento:
Cuando recibe un peticin de un cliente, el maestro le indica un
primario y las rplicas restantes
El cliente manda datos a las rplicas, que los guardan en buffer
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
(Diciembre 2013)
DIT/UPM
32
Consistencia en GFS
Si todos correctos, 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
(Diciembre 2013)
DIT/UPM
33
Chubby
Proporciona cerrojos distribuidos para sincronizar
actividades en un entorno de gran escala y asncrono
Proporciona un sistema de ficheros, con
almacenamiento fiable de ficheros pequeos
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
Chubby
Hincapi en fiabilidad y disponibilidad, frente a
rendimiento
3
4
(Diciembre 2013)
DIT/UPM
3
4
Interfaz de
Chubby
Role
Operation
General
Open
Clase
Delet
Effect
e
File
Lock
GetContentsAndStat
GetStat
ReadDir
SetContents
SetACL
Acquire
TryAquire
Releas e
Relcases a lock
dit
(Diciembre 2013)
DITIUPM
Interfaz de
Chubby
35
UPM
Funciones de Chubby
Eleccin de un primario: eleccin sobre consenso
Los candidatos tratan de adquirir un cerrojo asociado a la
eleccin
El que tiene xito es el primero. Escribe en el fichero su
identidad
Seleccin de un primario, basada en servicio de consenso
(Diciembre 2013)
DIT/UPM
36
Funciones de Chubby
Otras caractersticas
(Diciembre 2013)
DIT/UPM
37
Arquitectura de Chubby
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
Arquitectura de Chubby
Las rplicas mantienen copias de una BD sencilla
Contienen entidades chubby: cerrojos/ficheros
Slo el maestro inicia operaciones de lectura/escritura de la BD
Se emplea un protocolo de consenso
Arquitectura de Chubby
Chubby cell
Client
Log
Chubby
client librar /
@aps
Local
database
Log
Local
data
base
(apsh
LLog
*
(Diciembre 2013)
]
1
DITIUPM
Snapshotq 1
1 Local
database 1
Arquitectura de Chubby
38
dit
UPM
(Diciembre 2013)
DIT/UPM
39
Propiedades de vivacidad:
Si hay una mayora estable de servidores, si uno del conjunto
inicia una actualizacin, algunos miembros del mismo
ejecutarn la operacin en algn momento
Si un servidor s ejecuta una operacin y existe un conjunto de
servidores con s y r, si no hay fallos, entonces r ejecutar la
actualizacin
4
2
(Diciembre 2013)
DIT/UPM
4
2
Propase (seq_number)
Coordinator
Promise
Replicas
43
dit
UPM
Accept (value)
Coordinator
Acknowledgement
Replicas
44
di
UPM
Commit
Replicas
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)
Bigtable
(Diciembre 2013)
DIT/UPM
46
Bigtable
(Diciembre 2013)
DIT/UPM
47
Interfaz de Bigtable
Acceso indexado por fila, columna y marca de tiempo:
Filas:
Identificadas por una clave, que es una tira de caracteres de hasta
64KB
Ej. direccin de una web
Ordenadas lexicogrficamente por la clave
Filas relacionadas se almacenan juntas
Los accesos a las filas son atmicos
Columnas:
Nombre de columna: Nombre de familia:calificador
Enfoque: pocas familias y muchas columnas
Ej. informacin de la direccin de web: enlaces, lenguajes, etc
Marca de tiempo
Interfaz de Bigtable
Una celda tiene varias versiones, indexadas con este parmetro
Puede ser tiempo real o tiempo lgico
lnteaz de Bigtable
Column families and qualifiers
CF1
CF2q1
CF3q1
Rows
Rs
48
dit
lnteaz de Bigtable
UPM
Interfaz de Bigtable
Proporciona funciones, como
Creacin y borrado de tablas
Creacin y borrado de familias de columnas
Acceso a datos de una fila
Escritura y borrado de datos de las celdas
Mutaciones atmicas en filas, como acceso, escritura y borrado
de datos
Iteracin sobre familias de columnas, incluyendo el uso de
expresiones regulares
(Diciembre 2013)
DIT/UPM
49
Interfaz de Bigtable
(Diciembre 2013)
DIT/UPM
50
Arquitectura de Bigtable
Se divide en tabletas, que son un conjunto de filas
Relaciona las tabletas con ficheros en GFS
Garantiza equilibrado de la carga entre los servidores
SSTable:
Held in
man
memory
Memtable
Persistent
log
HeldnGFS
Wrte
SSTable files
dit
52
UPM
(Diciembre 2013)
DIT/UPM
53
Equilibrado de carga
El maestro tiene una visin global del sistema
Servidores existentes, asignacin de tabletas del cluster
Asigna tabletas a servidores, segn su carga
Chubby
Bigtable
(Diciem1
Rationale
Trade-offs
Separation of control
and data flows
Relaxed consistency
modcl
Whole-file reading
and writing
Detcrministic semantics
Ovcrhead ofmaintaining
strict consistcncy
Scparation of control
and data lows
Emphasis on
monitoring and load
balancing
Design choice
56
dit
UPM
Interfaz de MapReduce:
Basado en el siguiente patrn de 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
57
lnitial step
Mapphase
lntermediate step
Reduce phase
the interrnediary
set, count the
number of ls
Output a line if it
matches a given pattem
Null
in
Grep
Sort
N.B.This
relies heavily
their on the
intermedia/e
step
lnverted
index
Partition data
For each entry in the
Merge/sort all
intofixed-size
input data, output the
key-value keys
chunks for
key-value pairs to be
according to
processzng
sorted
intermediary key
Null
dit
58
UPM
Arquitectura de MapReduce
Biblioteca que permite al programador centrarse en
las funciones Map y Reduce
Se crean un conjunto de trabajadores
Un maestro para supervisar
(Diciembre 2013)
DIT/UPM
59
Tolerancia de
Fallos
Tolerancia de
Fallos
Cuanto se est
completando una operacin, lanza trabajadores
nuevos como respaldo a los lentos
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
Ejemplo
count: table sum of int;
total: table sum of float;
x: float = input;
emit count <- 1;
emit total <- x;
(Diciembre 2013)
DIT/UPM
6
2
Sawzall
Design choice
Rationale
Trade-offs
The use of a
common
framework
Programming of
system via two
operations, map
and reduce
Inherent support
for fault-tolerant
distributed
computations
Overhead associated
with fault-recovery
st:rategies
Provision of a
special ized
programmmg
language for
distributed
computation
dit
63
UPM
6. Resumen
Google proporciona un motor de bsqueda,
aplicaciones y una plataforma de cmputo en la nube
Infraestructura Google
Conjunto de componentes y modelo fsico para el desarrollo de
aplicaciones en sistemas masivamente distribuidos
Priman soluciones adaptadas a las necesidades de Google.
Requisitos: escalabilidad, rendimiento, fiabilidad, apertura
Entorno en continua evolucin
(Diciembre 2013)
DIT/UPM
64
Bibliografa
Coulouris, Dollimore, Kindberg and Blair,
Distributed Systems: Concepts and Design, Edicin
5, Addison- Wesley 2012, captulo 21
Este captulo incluye referencias artculos originales
de los desarrolladores de Google