Professional Documents
Culture Documents
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
Introduccin
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
Introduccin
Motor
de
bsqueda
de
Google
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
11
12
13
14
Amrica
Asia
Europa
Hong Kong
Hamina, Finlandia
Singapur
Saint-Ghislain, Blgica
Taiwn
Dubln (Irlanda)
Quilicura, Chile
15
16
17
18
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
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
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
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
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)
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
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.
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
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
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