218
Introducci on Arquitectura Comunicaci on Almacenamiento y coordinaci on Computaci on distribuida Procesos distribuidos Dise~no de sistemas distribuidos Caso de estudio: Google Profesor: Diego Villalba Escuela de Ciencias de la Computaci oneInformatica Universidad de Costa Rica 2014-01-15 Dise~no de sistemas distribuidos { Caso de estudio: Google 1 / 85

Procesos distribuidos Diseño de sistemas distribuidos Caso

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Procesos distribuidosDiseno de sistemas distribuidos

Caso de estudio: Google

Profesor: Diego Villalba

Escuela de Ciencias de la Computacion e InformaticaUniversidad de Costa Rica

2014-01-15

Diseno de sistemas distribuidos – Caso de estudio: Google 1 / 85

Page 2: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Outline

1 Introduccion

2 Arquitectura

3 Comunicacion

4 Almacenamiento y coordinacion

5 Computacion distribuida

Diseno de sistemas distribuidos – Caso de estudio: Google 2 / 85

Page 3: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 4: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 5: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 6: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 7: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 8: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 9: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Un sistema distribuido es un conjunto de componentes (hardware ysoftware), localizados en computadoras independientes, que sepresenta a sus usuarios como un solo sistema coherente.

Diseno de sistemas distribuidos – Caso de estudio: Google 3 / 85

Page 10: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Dos aspectos fundamentales sobresalen de esta definicion:

Un sistema distribuido consiste de componentes (i.e.,computadoras o aplicaciones) que son autonomos.

Sus usuarios (sean estos personas o programas) piensan queestan interactuando con un unico sistema, es decir, el aspectodistribuido del sistema es transparente para el usuario.

Diseno de sistemas distribuidos – Caso de estudio: Google 4 / 85

Page 11: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Dos aspectos fundamentales sobresalen de esta definicion:

Un sistema distribuido consiste de componentes (i.e.,computadoras o aplicaciones) que son autonomos.

Sus usuarios (sean estos personas o programas) piensan queestan interactuando con un unico sistema, es decir, el aspectodistribuido del sistema es transparente para el usuario.

Diseno de sistemas distribuidos – Caso de estudio: Google 4 / 85

Page 12: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

Dos aspectos fundamentales sobresalen de esta definicion:

Un sistema distribuido consiste de componentes (i.e.,computadoras o aplicaciones) que son autonomos.

Sus usuarios (sean estos personas o programas) piensan queestan interactuando con un unico sistema, es decir, el aspectodistribuido del sistema es transparente para el usuario.

Diseno de sistemas distribuidos – Caso de estudio: Google 4 / 85

Page 13: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

De lo anterior se deduce que, de una forma u otra, loscomponentes autonomos necesitan comunicarse y colaborarentre ellos a traves del intercambio de mensajes.

Como establecer esta colaboracion es uno de los aspectosbasicos del desarrollo de sistemas distribuidos.

Notese que no se hicieron suposiciones sobre el tipo decomputadoras que lo componen; podrıa tratarse de unacoleccion de supercomputadoras de alto rendimiento, de ungrupo de servidores e innumerables maquinas clientes odispositivos moviles, o de una red de sensores.

Tampoco se hicieron suposiciones sobre la forma en que estoscomponentes estan interconectados.

Diseno de sistemas distribuidos – Caso de estudio: Google 5 / 85

Page 14: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

De lo anterior se deduce que, de una forma u otra, loscomponentes autonomos necesitan comunicarse y colaborarentre ellos a traves del intercambio de mensajes.

Como establecer esta colaboracion es uno de los aspectosbasicos del desarrollo de sistemas distribuidos.

Notese que no se hicieron suposiciones sobre el tipo decomputadoras que lo componen; podrıa tratarse de unacoleccion de supercomputadoras de alto rendimiento, de ungrupo de servidores e innumerables maquinas clientes odispositivos moviles, o de una red de sensores.

Tampoco se hicieron suposiciones sobre la forma en que estoscomponentes estan interconectados.

Diseno de sistemas distribuidos – Caso de estudio: Google 5 / 85

Page 15: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

De lo anterior se deduce que, de una forma u otra, loscomponentes autonomos necesitan comunicarse y colaborarentre ellos a traves del intercambio de mensajes.

Como establecer esta colaboracion es uno de los aspectosbasicos del desarrollo de sistemas distribuidos.

Notese que no se hicieron suposiciones sobre el tipo decomputadoras que lo componen; podrıa tratarse de unacoleccion de supercomputadoras de alto rendimiento, de ungrupo de servidores e innumerables maquinas clientes odispositivos moviles, o de una red de sensores.

Tampoco se hicieron suposiciones sobre la forma en que estoscomponentes estan interconectados.

Diseno de sistemas distribuidos – Caso de estudio: Google 5 / 85

Page 16: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Definicion de sistemas distribuidos

De lo anterior se deduce que, de una forma u otra, loscomponentes autonomos necesitan comunicarse y colaborarentre ellos a traves del intercambio de mensajes.

Como establecer esta colaboracion es uno de los aspectosbasicos del desarrollo de sistemas distribuidos.

Notese que no se hicieron suposiciones sobre el tipo decomputadoras que lo componen; podrıa tratarse de unacoleccion de supercomputadoras de alto rendimiento, de ungrupo de servidores e innumerables maquinas clientes odispositivos moviles, o de una red de sensores.

Tampoco se hicieron suposiciones sobre la forma en que estoscomponentes estan interconectados.

Diseno de sistemas distribuidos – Caso de estudio: Google 5 / 85

Page 17: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno de sistemas distribuidos

La capacidad de crear disenos efectivos es una habilidad muyimportante en sistemas distribuidos.

Se requiere conocimiento de diferentes alternativastecnologicas y de los requerimientos relevantes del dominio deaplicacion.

El objetivo es crear una arquitectura consistente que incorporeun conjunto completo de recursos que contemplen losrequerimientos globales del sistema.

Diseno de sistemas distribuidos – Caso de estudio: Google 6 / 85

Page 18: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno de sistemas distribuidos

La capacidad de crear disenos efectivos es una habilidad muyimportante en sistemas distribuidos.

Se requiere conocimiento de diferentes alternativastecnologicas y de los requerimientos relevantes del dominio deaplicacion.

El objetivo es crear una arquitectura consistente que incorporeun conjunto completo de recursos que contemplen losrequerimientos globales del sistema.

Diseno de sistemas distribuidos – Caso de estudio: Google 6 / 85

Page 19: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno de sistemas distribuidos

La capacidad de crear disenos efectivos es una habilidad muyimportante en sistemas distribuidos.

Se requiere conocimiento de diferentes alternativastecnologicas y de los requerimientos relevantes del dominio deaplicacion.

El objetivo es crear una arquitectura consistente que incorporeun conjunto completo de recursos que contemplen losrequerimientos globales del sistema.

Diseno de sistemas distribuidos – Caso de estudio: Google 6 / 85

Page 20: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 21: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 22: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 23: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 24: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 25: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 26: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 27: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Conceptos claves de diseno

Heterogeneidad

Apertura

Seguridad

Escalabilidad

Manejo de fallos

Concurrencia

Transparencia

Calidad de servicio

Diseno de sistemas distribuidos – Caso de estudio: Google 7 / 85

Page 28: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Partes que constituyen un sistema distribuido

Paradigmas de comunicacion como invocacion remota yalternativas indirectas.

Abstracciones de programacion ofrecidas por objetos,componentes o servicios web.

Servicios especıficos de seguridad, resolucion de nombres osoporte de sistemas de archivos.

Soluciones algorıtmicas para la coordinacion y el acuerdo.

Diseno de sistemas distribuidos – Caso de estudio: Google 8 / 85

Page 29: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Partes que constituyen un sistema distribuido

Paradigmas de comunicacion como invocacion remota yalternativas indirectas.

Abstracciones de programacion ofrecidas por objetos,componentes o servicios web.

Servicios especıficos de seguridad, resolucion de nombres osoporte de sistemas de archivos.

Soluciones algorıtmicas para la coordinacion y el acuerdo.

Diseno de sistemas distribuidos – Caso de estudio: Google 8 / 85

Page 30: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Partes que constituyen un sistema distribuido

Paradigmas de comunicacion como invocacion remota yalternativas indirectas.

Abstracciones de programacion ofrecidas por objetos,componentes o servicios web.

Servicios especıficos de seguridad, resolucion de nombres osoporte de sistemas de archivos.

Soluciones algorıtmicas para la coordinacion y el acuerdo.

Diseno de sistemas distribuidos – Caso de estudio: Google 8 / 85

Page 31: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Partes que constituyen un sistema distribuido

Paradigmas de comunicacion como invocacion remota yalternativas indirectas.

Abstracciones de programacion ofrecidas por objetos,componentes o servicios web.

Servicios especıficos de seguridad, resolucion de nombres osoporte de sistemas de archivos.

Soluciones algorıtmicas para la coordinacion y el acuerdo.

Diseno de sistemas distribuidos – Caso de estudio: Google 8 / 85

Page 32: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno global

Sin embargo...

Tambien es importante considerar como ensamblar las partespara obtener una arquitectura global completaque cumpla con los requerimientos en un ambiente o dominioa gran escala.

Diseno de sistemas distribuidos – Caso de estudio: Google 9 / 85

Page 33: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno global

Sin embargo...

Tambien es importante considerar como ensamblar las partes

para obtener una arquitectura global completaque cumpla con los requerimientos en un ambiente o dominioa gran escala.

Diseno de sistemas distribuidos – Caso de estudio: Google 9 / 85

Page 34: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno global

Sin embargo...

Tambien es importante considerar como ensamblar las partespara obtener una arquitectura global completa

que cumpla con los requerimientos en un ambiente o dominioa gran escala.

Diseno de sistemas distribuidos – Caso de estudio: Google 9 / 85

Page 35: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Diseno global

Sin embargo...

Tambien es importante considerar como ensamblar las partespara obtener una arquitectura global completaque cumpla con los requerimientos en un ambiente o dominioa gran escala.

Diseno de sistemas distribuidos – Caso de estudio: Google 9 / 85

Page 36: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 37: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 38: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 39: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 40: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 41: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 42: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google

Sus oficinas centrales estan localizadas en Mountain View,California (el Googleplex).

Ofrece servicios de busqueda en la web, entre otros servicios.

Su principal fuente de ingreso son anuncios asociados a suservicio de busqueda.

Su nombre es una variacion de la palabra googol (10100).

Su mision es “organizar la informacion del mundo y hacerlautil y accesible universalmente”.

Se origino a partir de un proyecto de investigacion de Stanfordy nacio como empresa en 1998.

Desde entonces, ha dominado el mercado de los motores debusqueda gracias, principalmente, a su algoritmo de ranqueode resultados.

Diseno de sistemas distribuidos – Caso de estudio: Google 10 / 85

Page 43: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Googleplex

Diseno de sistemas distribuidos – Caso de estudio: Google 11 / 85

Page 44: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 45: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 46: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 47: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 48: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 49: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El desafıo de Google

Desde la perspectiva de los sitemas distribuidos, Google provee unestudio de caso bastante completo, con requerimientosextremadamente exigentes, particularmente en terminos de:

Escalabilidad

Confiabilidad

Rendimiento

Apertura

Vamos a examinar las estrategias y decisiones de diseno masrelevantes, tanto para su motor de busqueda como para otrosservicios que brinda, como un ejemplo de un sistema distribuidocontemporaneo complejo.

Diseno de sistemas distribuidos – Caso de estudio: Google 12 / 85

Page 50: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google Search Engine

Crawling

Indexing

Ranking

GUI

Diseno de sistemas distribuidos – Caso de estudio: Google 13 / 85

Page 51: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google Search Engine

Crawling

Indexing

Ranking

GUI

Diseno de sistemas distribuidos – Caso de estudio: Google 13 / 85

Page 52: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google Search Engine

Crawling

Indexing

Ranking

GUI

Diseno de sistemas distribuidos – Caso de estudio: Google 13 / 85

Page 53: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google Search Engine

Crawling

Indexing

Ranking

GUI

Diseno de sistemas distribuidos – Caso de estudio: Google 13 / 85

Page 54: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura del sistema original

Diseno de sistemas distribuidos – Caso de estudio: Google 14 / 85

Page 55: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google como proveedor de servicios en la nube

Software as a service

Platform as a service

Diseno de sistemas distribuidos – Caso de estudio: Google 15 / 85

Page 56: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google como proveedor de servicios en la nube

Software as a service

Platform as a service

Diseno de sistemas distribuidos – Caso de estudio: Google 15 / 85

Page 57: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplos de aplicaciones de Google

Diseno de sistemas distribuidos – Caso de estudio: Google 16 / 85

Page 58: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Outline

1 Introduccion

2 Arquitectura

3 Comunicacion

4 Almacenamiento y coordinacion

5 Computacion distribuida

Diseno de sistemas distribuidos – Caso de estudio: Google 17 / 85

Page 59: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Utilizar grandes cantidades de servidores de bajo costo paraproducir un ambiente costo-efectivo para la computacion y elalmacenamiento distribuido.

Datos para 2006: unidades de 2 TB de disco duro, 16 GB deRAM y con una version personalizada de Linux(aproximadamente 1.000.- dolares cada una).

Se reconoce que parte de la infraestructura va a fallar, por loque se crean estrategias para tolerar esas fallas.

La fallas mas comunes son debidas al software, con 20maquinas que necesitan reiniciarse por dıa.

Las fallas de hardware se dan a razon de una por cada 10 delas debidas al software.

Diseno de sistemas distribuidos – Caso de estudio: Google 18 / 85

Page 60: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Utilizar grandes cantidades de servidores de bajo costo paraproducir un ambiente costo-efectivo para la computacion y elalmacenamiento distribuido.

Datos para 2006: unidades de 2 TB de disco duro, 16 GB deRAM y con una version personalizada de Linux(aproximadamente 1.000.- dolares cada una).

Se reconoce que parte de la infraestructura va a fallar, por loque se crean estrategias para tolerar esas fallas.

La fallas mas comunes son debidas al software, con 20maquinas que necesitan reiniciarse por dıa.

Las fallas de hardware se dan a razon de una por cada 10 delas debidas al software.

Diseno de sistemas distribuidos – Caso de estudio: Google 18 / 85

Page 61: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Utilizar grandes cantidades de servidores de bajo costo paraproducir un ambiente costo-efectivo para la computacion y elalmacenamiento distribuido.

Datos para 2006: unidades de 2 TB de disco duro, 16 GB deRAM y con una version personalizada de Linux(aproximadamente 1.000.- dolares cada una).

Se reconoce que parte de la infraestructura va a fallar, por loque se crean estrategias para tolerar esas fallas.

La fallas mas comunes son debidas al software, con 20maquinas que necesitan reiniciarse por dıa.

Las fallas de hardware se dan a razon de una por cada 10 delas debidas al software.

Diseno de sistemas distribuidos – Caso de estudio: Google 18 / 85

Page 62: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Utilizar grandes cantidades de servidores de bajo costo paraproducir un ambiente costo-efectivo para la computacion y elalmacenamiento distribuido.

Datos para 2006: unidades de 2 TB de disco duro, 16 GB deRAM y con una version personalizada de Linux(aproximadamente 1.000.- dolares cada una).

Se reconoce que parte de la infraestructura va a fallar, por loque se crean estrategias para tolerar esas fallas.

La fallas mas comunes son debidas al software, con 20maquinas que necesitan reiniciarse por dıa.

Las fallas de hardware se dan a razon de una por cada 10 delas debidas al software.

Diseno de sistemas distribuidos – Caso de estudio: Google 18 / 85

Page 63: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Utilizar grandes cantidades de servidores de bajo costo paraproducir un ambiente costo-efectivo para la computacion y elalmacenamiento distribuido.

Datos para 2006: unidades de 2 TB de disco duro, 16 GB deRAM y con una version personalizada de Linux(aproximadamente 1.000.- dolares cada una).

Se reconoce que parte de la infraestructura va a fallar, por loque se crean estrategias para tolerar esas fallas.

La fallas mas comunes son debidas al software, con 20maquinas que necesitan reiniciarse por dıa.

Las fallas de hardware se dan a razon de una por cada 10 delas debidas al software.

Diseno de sistemas distribuidos – Caso de estudio: Google 18 / 85

Page 64: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Este es el razonamiento para utilizar hardware de bajo costo:si la mayorıa de las fallas son de software, no vale la penainvertir en harware mas confiable.

Los servidores de bajo costo estan organizadas en racks de 40a 80 unidades.

Cada rack cuenta con un switch de Ethernet que proveeconectividad dentro del rack y hacia afuera.

Las conexiones internas utilizan puertos de 100 Mbps y lasconexiones externas son de 1 Gbps.

Diseno de sistemas distribuidos – Caso de estudio: Google 19 / 85

Page 65: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Este es el razonamiento para utilizar hardware de bajo costo:si la mayorıa de las fallas son de software, no vale la penainvertir en harware mas confiable.

Los servidores de bajo costo estan organizadas en racks de 40a 80 unidades.

Cada rack cuenta con un switch de Ethernet que proveeconectividad dentro del rack y hacia afuera.

Las conexiones internas utilizan puertos de 100 Mbps y lasconexiones externas son de 1 Gbps.

Diseno de sistemas distribuidos – Caso de estudio: Google 19 / 85

Page 66: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Este es el razonamiento para utilizar hardware de bajo costo:si la mayorıa de las fallas son de software, no vale la penainvertir en harware mas confiable.

Los servidores de bajo costo estan organizadas en racks de 40a 80 unidades.

Cada rack cuenta con un switch de Ethernet que proveeconectividad dentro del rack y hacia afuera.

Las conexiones internas utilizan puertos de 100 Mbps y lasconexiones externas son de 1 Gbps.

Diseno de sistemas distribuidos – Caso de estudio: Google 19 / 85

Page 67: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Este es el razonamiento para utilizar hardware de bajo costo:si la mayorıa de las fallas son de software, no vale la penainvertir en harware mas confiable.

Los servidores de bajo costo estan organizadas en racks de 40a 80 unidades.

Cada rack cuenta con un switch de Ethernet que proveeconectividad dentro del rack y hacia afuera.

Las conexiones internas utilizan puertos de 100 Mbps y lasconexiones externas son de 1 Gbps.

Diseno de sistemas distribuidos – Caso de estudio: Google 19 / 85

Page 68: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los racks se organizan en clusters, que son las unidadesbasicas de administracion.

Los clusters determinan, por ejemplo, la ubicacion y lareplicacion de los servicios.

Un cluster consiste tıpicamente de 30 o mas racks y de dosswitches de banda ancha que lo conectan al mundo exterior(la Internet y el resto de los centros de datos de Google).

Cada rack se conecta a los dos switches por redundancia(ademas, cada switch tiene conexiones redundantes con elmundo exterior).

Diseno de sistemas distribuidos – Caso de estudio: Google 20 / 85

Page 69: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los racks se organizan en clusters, que son las unidadesbasicas de administracion.

Los clusters determinan, por ejemplo, la ubicacion y lareplicacion de los servicios.

Un cluster consiste tıpicamente de 30 o mas racks y de dosswitches de banda ancha que lo conectan al mundo exterior(la Internet y el resto de los centros de datos de Google).

Cada rack se conecta a los dos switches por redundancia(ademas, cada switch tiene conexiones redundantes con elmundo exterior).

Diseno de sistemas distribuidos – Caso de estudio: Google 20 / 85

Page 70: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los racks se organizan en clusters, que son las unidadesbasicas de administracion.

Los clusters determinan, por ejemplo, la ubicacion y lareplicacion de los servicios.

Un cluster consiste tıpicamente de 30 o mas racks y de dosswitches de banda ancha que lo conectan al mundo exterior(la Internet y el resto de los centros de datos de Google).

Cada rack se conecta a los dos switches por redundancia(ademas, cada switch tiene conexiones redundantes con elmundo exterior).

Diseno de sistemas distribuidos – Caso de estudio: Google 20 / 85

Page 71: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los racks se organizan en clusters, que son las unidadesbasicas de administracion.

Los clusters determinan, por ejemplo, la ubicacion y lareplicacion de los servicios.

Un cluster consiste tıpicamente de 30 o mas racks y de dosswitches de banda ancha que lo conectan al mundo exterior(la Internet y el resto de los centros de datos de Google).

Cada rack se conecta a los dos switches por redundancia(ademas, cada switch tiene conexiones redundantes con elmundo exterior).

Diseno de sistemas distribuidos – Caso de estudio: Google 20 / 85

Page 72: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Organizacion de la infraestructura fısica

Diseno de sistemas distribuidos – Caso de estudio: Google 21 / 85

Page 73: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los clusters se localizan en los centros de datos de Googlerepartidos alrededor del mundo.

En el 2000, Google tenıa dos centros de datos en SiliconValley y uno en Virginia.

En 2008, tenıa otros centros de datos en EE.UU. y tambien enIrlanda, Belgica, Suiza, Japon y China.

Informacion mas actualizada muchas veces se obtiene decomunicados de prensa de la companıa y no siempre escompleta.

Diseno de sistemas distribuidos – Caso de estudio: Google 22 / 85

Page 74: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los clusters se localizan en los centros de datos de Googlerepartidos alrededor del mundo.

En el 2000, Google tenıa dos centros de datos en SiliconValley y uno en Virginia.

En 2008, tenıa otros centros de datos en EE.UU. y tambien enIrlanda, Belgica, Suiza, Japon y China.

Informacion mas actualizada muchas veces se obtiene decomunicados de prensa de la companıa y no siempre escompleta.

Diseno de sistemas distribuidos – Caso de estudio: Google 22 / 85

Page 75: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los clusters se localizan en los centros de datos de Googlerepartidos alrededor del mundo.

En el 2000, Google tenıa dos centros de datos en SiliconValley y uno en Virginia.

En 2008, tenıa otros centros de datos en EE.UU. y tambien enIrlanda, Belgica, Suiza, Japon y China.

Informacion mas actualizada muchas veces se obtiene decomunicados de prensa de la companıa y no siempre escompleta.

Diseno de sistemas distribuidos – Caso de estudio: Google 22 / 85

Page 76: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Filosofıa de diseno

Los clusters se localizan en los centros de datos de Googlerepartidos alrededor del mundo.

En el 2000, Google tenıa dos centros de datos en SiliconValley y uno en Virginia.

En 2008, tenıa otros centros de datos en EE.UU. y tambien enIrlanda, Belgica, Suiza, Japon y China.

Informacion mas actualizada muchas veces se obtiene decomunicados de prensa de la companıa y no siempre escompleta.

Diseno de sistemas distribuidos – Caso de estudio: Google 22 / 85

Page 77: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Capacidad de almacenamiento

Cada servidor ofrece capacidad para 2 TB (ano 2006).

Un rack de 80 servidores provee 160 TB.

Un cluster de 30 racks ofrece 4.8 PB.

La cantidad total de clusters es un secreto.

Diseno de sistemas distribuidos – Caso de estudio: Google 23 / 85

Page 78: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Capacidad de almacenamiento

Cada servidor ofrece capacidad para 2 TB (ano 2006).

Un rack de 80 servidores provee 160 TB.

Un cluster de 30 racks ofrece 4.8 PB.

La cantidad total de clusters es un secreto.

Diseno de sistemas distribuidos – Caso de estudio: Google 23 / 85

Page 79: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Capacidad de almacenamiento

Cada servidor ofrece capacidad para 2 TB (ano 2006).

Un rack de 80 servidores provee 160 TB.

Un cluster de 30 racks ofrece 4.8 PB.

La cantidad total de clusters es un secreto.

Diseno de sistemas distribuidos – Caso de estudio: Google 23 / 85

Page 80: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Capacidad de almacenamiento

Cada servidor ofrece capacidad para 2 TB (ano 2006).

Un rack de 80 servidores provee 160 TB.

Un cluster de 30 racks ofrece 4.8 PB.

La cantidad total de clusters es un secreto.

Diseno de sistemas distribuidos – Caso de estudio: Google 23 / 85

Page 81: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Diseno de sistemas distribuidos – Caso de estudio: Google 24 / 85

Page 82: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 83: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 84: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 85: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 86: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 87: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la escalabilidad

Demanda estrategias sofisticadas de sistemas distribuidos.

Si asumieramos que la web consiste de 20 mil millones depaginas de 20 KB cada una.

El tamano total serıa de 400 TB.

Si una computadora puede leer 30 MB por segundo, uncrawler durarıa 4 meses en recorrerla.

En contraste, 1000 maquinas podrıan leer esta cantidad dedatos en menos de 3 horas.

Del mismo modo, las otras funciones (indexado, ranking ybusqueda) tambien requieren soluciones altamente distribuidaspara escalar.

Diseno de sistemas distribuidos – Caso de estudio: Google 25 / 85

Page 88: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la confiabilidad

Se debe garantizar disponibilidad del servicio 24/7.

El 1 de setiembre de 2009 Gmail estuvo caıdo por 100minutos.

Se debe ser capaz de anticipar las fallas de un modo u otro.

Diseno de sistemas distribuidos – Caso de estudio: Google 26 / 85

Page 89: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la confiabilidad

Se debe garantizar disponibilidad del servicio 24/7.

El 1 de setiembre de 2009 Gmail estuvo caıdo por 100minutos.

Se debe ser capaz de anticipar las fallas de un modo u otro.

Diseno de sistemas distribuidos – Caso de estudio: Google 26 / 85

Page 90: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El problema de la confiabilidad

Se debe garantizar disponibilidad del servicio 24/7.

El 1 de setiembre de 2009 Gmail estuvo caıdo por 100minutos.

Se debe ser capaz de anticipar las fallas de un modo u otro.

Diseno de sistemas distribuidos – Caso de estudio: Google 26 / 85

Page 91: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Otros problemas a resolver

Rendimiento: Baja latencia entre interacciones.

Apertura: Estimular innovacion, arquitectura extensible yestrategias y principios de diseno comunes para proveercoherencia a programadores.

Diseno de sistemas distribuidos – Caso de estudio: Google 27 / 85

Page 92: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Otros problemas a resolver

Rendimiento: Baja latencia entre interacciones.

Apertura: Estimular innovacion, arquitectura extensible yestrategias y principios de diseno comunes para proveercoherencia a programadores.

Diseno de sistemas distribuidos – Caso de estudio: Google 27 / 85

Page 93: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura global

Diseno de sistemas distribuidos – Caso de estudio: Google 28 / 85

Page 94: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Infraestructura

El sistema esta construido como un conjunto de servicios queofrecen la funcionalidad basica a los desarrolladores. Esteconjunto puede ser particionado en los siguientes subconjuntos:

Los paradigmas de comunicacion, incluyendo servicios parainvocacion remota y comunicacion indirecta.

Los servicios de datos y de coordinacion, que proveenabstracciones estructuradas y semiestructuradas para elalmacenamiento de datos, junto con los servicios parasoportar el acceso coordinado a los datos.

Los servicios de computacion distribuida, que proveen losmedios para llevar a cabo la computacion paralela ydistribuida sobre la infraestructura fısica.

Diseno de sistemas distribuidos – Caso de estudio: Google 29 / 85

Page 95: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Infraestructura

El sistema esta construido como un conjunto de servicios queofrecen la funcionalidad basica a los desarrolladores. Esteconjunto puede ser particionado en los siguientes subconjuntos:

Los paradigmas de comunicacion, incluyendo servicios parainvocacion remota y comunicacion indirecta.

Los servicios de datos y de coordinacion, que proveenabstracciones estructuradas y semiestructuradas para elalmacenamiento de datos, junto con los servicios parasoportar el acceso coordinado a los datos.

Los servicios de computacion distribuida, que proveen losmedios para llevar a cabo la computacion paralela ydistribuida sobre la infraestructura fısica.

Diseno de sistemas distribuidos – Caso de estudio: Google 29 / 85

Page 96: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Infraestructura

El sistema esta construido como un conjunto de servicios queofrecen la funcionalidad basica a los desarrolladores. Esteconjunto puede ser particionado en los siguientes subconjuntos:

Los paradigmas de comunicacion, incluyendo servicios parainvocacion remota y comunicacion indirecta.

Los servicios de datos y de coordinacion, que proveenabstracciones estructuradas y semiestructuradas para elalmacenamiento de datos, junto con los servicios parasoportar el acceso coordinado a los datos.

Los servicios de computacion distribuida, que proveen losmedios para llevar a cabo la computacion paralela ydistribuida sobre la infraestructura fısica.

Diseno de sistemas distribuidos – Caso de estudio: Google 29 / 85

Page 97: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Infraestructura

Diseno de sistemas distribuidos – Caso de estudio: Google 30 / 85

Page 98: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Principios de diseno asociados

Simplicidad (el principio mas importante). Por ejemplo, unaAPI debe ser tan pequena como sea posible, pero no maspequena (Occam’s Razor).

Rendimiento (cada milisegundo cuenta). Un disenador deberıaser capaz de poder estimar el rendimiento de un sistemabasado en su conocimiento de los costos de rendimiento de lasoperaciones primitivas necesarias (como acceso a memoria olecturas de disco).

Pruebas meticulosas. Ademas, las pruebas deben sercomplementadas con un enfasis en logging y tracing.

Diseno de sistemas distribuidos – Caso de estudio: Google 31 / 85

Page 99: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Principios de diseno asociados

Simplicidad (el principio mas importante). Por ejemplo, unaAPI debe ser tan pequena como sea posible, pero no maspequena (Occam’s Razor).

Rendimiento (cada milisegundo cuenta). Un disenador deberıaser capaz de poder estimar el rendimiento de un sistemabasado en su conocimiento de los costos de rendimiento de lasoperaciones primitivas necesarias (como acceso a memoria olecturas de disco).

Pruebas meticulosas. Ademas, las pruebas deben sercomplementadas con un enfasis en logging y tracing.

Diseno de sistemas distribuidos – Caso de estudio: Google 31 / 85

Page 100: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Principios de diseno asociados

Simplicidad (el principio mas importante). Por ejemplo, unaAPI debe ser tan pequena como sea posible, pero no maspequena (Occam’s Razor).

Rendimiento (cada milisegundo cuenta). Un disenador deberıaser capaz de poder estimar el rendimiento de un sistemabasado en su conocimiento de los costos de rendimiento de lasoperaciones primitivas necesarias (como acceso a memoria olecturas de disco).

Pruebas meticulosas. Ademas, las pruebas deben sercomplementadas con un enfasis en logging y tracing.

Diseno de sistemas distribuidos – Caso de estudio: Google 31 / 85

Page 101: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Outline

1 Introduccion

2 Arquitectura

3 Comunicacion

4 Almacenamiento y coordinacion

5 Computacion distribuida

Diseno de sistemas distribuidos – Caso de estudio: Google 32 / 85

Page 102: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Paradigmas de comunicacion

Esta eleccion es crucial para el exito del diseno global del sistema.Las opciones incluyen:

Utilizar un servicio de IPC directamente, como los ofrecidoscon sockets.

Utilizar un servicio de invocacion remota (como RPC o RMI).

Utilizar un paradigma de comunicacion indirecta, comocomunicacion grupal, aproximaciones distribuidas basadas eneventos o memoria compartida distribuida.

Diseno de sistemas distribuidos – Caso de estudio: Google 33 / 85

Page 103: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Paradigmas de comunicacion

Esta eleccion es crucial para el exito del diseno global del sistema.Las opciones incluyen:

Utilizar un servicio de IPC directamente, como los ofrecidoscon sockets.

Utilizar un servicio de invocacion remota (como RPC o RMI).

Utilizar un paradigma de comunicacion indirecta, comocomunicacion grupal, aproximaciones distribuidas basadas eneventos o memoria compartida distribuida.

Diseno de sistemas distribuidos – Caso de estudio: Google 33 / 85

Page 104: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Paradigmas de comunicacion

Esta eleccion es crucial para el exito del diseno global del sistema.Las opciones incluyen:

Utilizar un servicio de IPC directamente, como los ofrecidoscon sockets.

Utilizar un servicio de invocacion remota (como RPC o RMI).

Utilizar un paradigma de comunicacion indirecta, comocomunicacion grupal, aproximaciones distribuidas basadas eneventos o memoria compartida distribuida.

Diseno de sistemas distribuidos – Caso de estudio: Google 33 / 85

Page 105: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Esquema escogido

De acuerdo con sus principios de diseno, Google adopta unservicio de invocacion remota simple, mınimo y eficiente(variante de RPC).

RPC requiere de un componente de serializacion paraconvertir los datos del procedimiento de invocacion (nombredel procedimiento y parametros, posiblemente estructurados).

Estos datos son convertidos de su representacion binariainterna en una representacion con formato plano o serializado,independiente de procesador, listo para ser transmitido alsocio remoto.

En Java RPC, XML es el formato universal para serializacion.Sin embargo, tiene un alto overhead.

Diseno de sistemas distribuidos – Caso de estudio: Google 34 / 85

Page 106: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Esquema escogido

De acuerdo con sus principios de diseno, Google adopta unservicio de invocacion remota simple, mınimo y eficiente(variante de RPC).

RPC requiere de un componente de serializacion paraconvertir los datos del procedimiento de invocacion (nombredel procedimiento y parametros, posiblemente estructurados).

Estos datos son convertidos de su representacion binariainterna en una representacion con formato plano o serializado,independiente de procesador, listo para ser transmitido alsocio remoto.

En Java RPC, XML es el formato universal para serializacion.Sin embargo, tiene un alto overhead.

Diseno de sistemas distribuidos – Caso de estudio: Google 34 / 85

Page 107: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Esquema escogido

De acuerdo con sus principios de diseno, Google adopta unservicio de invocacion remota simple, mınimo y eficiente(variante de RPC).

RPC requiere de un componente de serializacion paraconvertir los datos del procedimiento de invocacion (nombredel procedimiento y parametros, posiblemente estructurados).

Estos datos son convertidos de su representacion binariainterna en una representacion con formato plano o serializado,independiente de procesador, listo para ser transmitido alsocio remoto.

En Java RPC, XML es el formato universal para serializacion.Sin embargo, tiene un alto overhead.

Diseno de sistemas distribuidos – Caso de estudio: Google 34 / 85

Page 108: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Esquema escogido

De acuerdo con sus principios de diseno, Google adopta unservicio de invocacion remota simple, mınimo y eficiente(variante de RPC).

RPC requiere de un componente de serializacion paraconvertir los datos del procedimiento de invocacion (nombredel procedimiento y parametros, posiblemente estructurados).

Estos datos son convertidos de su representacion binariainterna en una representacion con formato plano o serializado,independiente de procesador, listo para ser transmitido alsocio remoto.

En Java RPC, XML es el formato universal para serializacion.Sin embargo, tiene un alto overhead.

Diseno de sistemas distribuidos – Caso de estudio: Google 34 / 85

Page 109: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Protocol buffers

Por esto, Google desarrollo un componente de serializacionsimplificado y de alto rendimiento, conocido como protocolbuffers.

Este se utiliza en la mayorıa de las interacciones dentro de lainfraestructura.

Puede ser usado en cualquier mecanismo de comunicacion yprovee capacidad para RPC.

Existe una version de codigo abierto disponible.

Diseno de sistemas distribuidos – Caso de estudio: Google 35 / 85

Page 110: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Protocol buffers

Por esto, Google desarrollo un componente de serializacionsimplificado y de alto rendimiento, conocido como protocolbuffers.

Este se utiliza en la mayorıa de las interacciones dentro de lainfraestructura.

Puede ser usado en cualquier mecanismo de comunicacion yprovee capacidad para RPC.

Existe una version de codigo abierto disponible.

Diseno de sistemas distribuidos – Caso de estudio: Google 35 / 85

Page 111: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Protocol buffers

Por esto, Google desarrollo un componente de serializacionsimplificado y de alto rendimiento, conocido como protocolbuffers.

Este se utiliza en la mayorıa de las interacciones dentro de lainfraestructura.

Puede ser usado en cualquier mecanismo de comunicacion yprovee capacidad para RPC.

Existe una version de codigo abierto disponible.

Diseno de sistemas distribuidos – Caso de estudio: Google 35 / 85

Page 112: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Protocol buffers

Por esto, Google desarrollo un componente de serializacionsimplificado y de alto rendimiento, conocido como protocolbuffers.

Este se utiliza en la mayorıa de las interacciones dentro de lainfraestructura.

Puede ser usado en cualquier mecanismo de comunicacion yprovee capacidad para RPC.

Existe una version de codigo abierto disponible.

Diseno de sistemas distribuidos – Caso de estudio: Google 35 / 85

Page 113: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicio publish-subscribe

Se utiliza tambien un servicio aparte tipo publish-subscribe.

Se reconoce el papel clave que un servicio de este tipo proveeal diseno de un sistema distribuido.

Por ejemplo, para la diseminacion de eventos de multiplesparticipantes.

Al igual que muchas otras soluciones en sistemas distribuidos,se ofrece un paradigma de comunicacion hıbrido, dejando quelos desarrolladores escojan el esquema que mejor se adapte asus requerimientos.

Publish-subscribe no es una alternativa a protocol buffers,mas bien un servicio de valor agregado para donde es masapropiado.

Diseno de sistemas distribuidos – Caso de estudio: Google 36 / 85

Page 114: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicio publish-subscribe

Se utiliza tambien un servicio aparte tipo publish-subscribe.

Se reconoce el papel clave que un servicio de este tipo proveeal diseno de un sistema distribuido.

Por ejemplo, para la diseminacion de eventos de multiplesparticipantes.

Al igual que muchas otras soluciones en sistemas distribuidos,se ofrece un paradigma de comunicacion hıbrido, dejando quelos desarrolladores escojan el esquema que mejor se adapte asus requerimientos.

Publish-subscribe no es una alternativa a protocol buffers,mas bien un servicio de valor agregado para donde es masapropiado.

Diseno de sistemas distribuidos – Caso de estudio: Google 36 / 85

Page 115: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicio publish-subscribe

Se utiliza tambien un servicio aparte tipo publish-subscribe.

Se reconoce el papel clave que un servicio de este tipo proveeal diseno de un sistema distribuido.

Por ejemplo, para la diseminacion de eventos de multiplesparticipantes.

Al igual que muchas otras soluciones en sistemas distribuidos,se ofrece un paradigma de comunicacion hıbrido, dejando quelos desarrolladores escojan el esquema que mejor se adapte asus requerimientos.

Publish-subscribe no es una alternativa a protocol buffers,mas bien un servicio de valor agregado para donde es masapropiado.

Diseno de sistemas distribuidos – Caso de estudio: Google 36 / 85

Page 116: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicio publish-subscribe

Se utiliza tambien un servicio aparte tipo publish-subscribe.

Se reconoce el papel clave que un servicio de este tipo proveeal diseno de un sistema distribuido.

Por ejemplo, para la diseminacion de eventos de multiplesparticipantes.

Al igual que muchas otras soluciones en sistemas distribuidos,se ofrece un paradigma de comunicacion hıbrido, dejando quelos desarrolladores escojan el esquema que mejor se adapte asus requerimientos.

Publish-subscribe no es una alternativa a protocol buffers,mas bien un servicio de valor agregado para donde es masapropiado.

Diseno de sistemas distribuidos – Caso de estudio: Google 36 / 85

Page 117: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicio publish-subscribe

Se utiliza tambien un servicio aparte tipo publish-subscribe.

Se reconoce el papel clave que un servicio de este tipo proveeal diseno de un sistema distribuido.

Por ejemplo, para la diseminacion de eventos de multiplesparticipantes.

Al igual que muchas otras soluciones en sistemas distribuidos,se ofrece un paradigma de comunicacion hıbrido, dejando quelos desarrolladores escojan el esquema que mejor se adapte asus requerimientos.

Publish-subscribe no es una alternativa a protocol buffers,mas bien un servicio de valor agregado para donde es masapropiado.

Diseno de sistemas distribuidos – Caso de estudio: Google 36 / 85

Page 118: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

Protocol buffers pone especial enfasis en la descripcion ysubsecuente serializacion de los datos.

Es posible compararlo con alternativas directas, como XML.

El objetivo es proveer un modo de especificar y serializar datos(independiente del lenguaje y plataforma), de una formasimple, altamente eficiente y extensible.

Los datos serializados pueden ser utilizados para sualmacenamiento subsecuente o para ser transmitidos pormedio de los protocolos de comunicacion subyacentes. O paracualquier otro proposito que requiera la serializacion de losdatos.

Diseno de sistemas distribuidos – Caso de estudio: Google 37 / 85

Page 119: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

Protocol buffers pone especial enfasis en la descripcion ysubsecuente serializacion de los datos.

Es posible compararlo con alternativas directas, como XML.

El objetivo es proveer un modo de especificar y serializar datos(independiente del lenguaje y plataforma), de una formasimple, altamente eficiente y extensible.

Los datos serializados pueden ser utilizados para sualmacenamiento subsecuente o para ser transmitidos pormedio de los protocolos de comunicacion subyacentes. O paracualquier otro proposito que requiera la serializacion de losdatos.

Diseno de sistemas distribuidos – Caso de estudio: Google 37 / 85

Page 120: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

Protocol buffers pone especial enfasis en la descripcion ysubsecuente serializacion de los datos.

Es posible compararlo con alternativas directas, como XML.

El objetivo es proveer un modo de especificar y serializar datos(independiente del lenguaje y plataforma), de una formasimple, altamente eficiente y extensible.

Los datos serializados pueden ser utilizados para sualmacenamiento subsecuente o para ser transmitidos pormedio de los protocolos de comunicacion subyacentes. O paracualquier otro proposito que requiera la serializacion de losdatos.

Diseno de sistemas distribuidos – Caso de estudio: Google 37 / 85

Page 121: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

Protocol buffers pone especial enfasis en la descripcion ysubsecuente serializacion de los datos.

Es posible compararlo con alternativas directas, como XML.

El objetivo es proveer un modo de especificar y serializar datos(independiente del lenguaje y plataforma), de una formasimple, altamente eficiente y extensible.

Los datos serializados pueden ser utilizados para sualmacenamiento subsecuente o para ser transmitidos pormedio de los protocolos de comunicacion subyacentes. O paracualquier otro proposito que requiera la serializacion de losdatos.

Diseno de sistemas distribuidos – Caso de estudio: Google 37 / 85

Page 122: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

En protocol buffers se provee un lenguaje para laespecificacion de mensajes.

Vamos a ver sus caracterısticas claves por medio de unejemplo.

Diseno de sistemas distribuidos – Caso de estudio: Google 38 / 85

Page 123: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Invocacion remota

En protocol buffers se provee un lenguaje para laespecificacion de mensajes.

Vamos a ver sus caracterısticas claves por medio de unejemplo.

Diseno de sistemas distribuidos – Caso de estudio: Google 38 / 85

Page 124: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Diseno de sistemas distribuidos – Caso de estudio: Google 39 / 85

Page 125: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Los tipos de datos pueden ser:

Primitive data type (incluyendo integer, floating-point,boolean, string o raw bytes).

Enumerated type.

Nested message (permite estructuras de datos jerarquicas).

Diseno de sistemas distribuidos – Caso de estudio: Google 40 / 85

Page 126: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Los tipos de datos pueden ser:

Primitive data type (incluyendo integer, floating-point,boolean, string o raw bytes).

Enumerated type.

Nested message (permite estructuras de datos jerarquicas).

Diseno de sistemas distribuidos – Caso de estudio: Google 40 / 85

Page 127: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Los tipos de datos pueden ser:

Primitive data type (incluyendo integer, floating-point,boolean, string o raw bytes).

Enumerated type.

Nested message (permite estructuras de datos jerarquicas).

Diseno de sistemas distribuidos – Caso de estudio: Google 40 / 85

Page 128: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Ademas, los campos son anotados con una de tres etiquetas:

required

optional

repeated

Diseno de sistemas distribuidos – Caso de estudio: Google 41 / 85

Page 129: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Esta especificacion se escribe en un archivo tipo .proto y secompila con una herramienta protoc.

La salida de esta herramiente es codigo generado que permitea los programadores manipular un tipo particular de mensaje,especialmente asignando/extrayendo valores hacia/desdemensajes.

protoc genera una clase builder que provee metodos getter ysetter para cada campo y otros metodos adicionales.

Diseno de sistemas distribuidos – Caso de estudio: Google 42 / 85

Page 130: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Esta especificacion se escribe en un archivo tipo .proto y secompila con una herramienta protoc.

La salida de esta herramiente es codigo generado que permitea los programadores manipular un tipo particular de mensaje,especialmente asignando/extrayendo valores hacia/desdemensajes.

protoc genera una clase builder que provee metodos getter ysetter para cada campo y otros metodos adicionales.

Diseno de sistemas distribuidos – Caso de estudio: Google 42 / 85

Page 131: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Esta especificacion se escribe en un archivo tipo .proto y secompila con una herramienta protoc.

La salida de esta herramiente es codigo generado que permitea los programadores manipular un tipo particular de mensaje,especialmente asignando/extrayendo valores hacia/desdemensajes.

protoc genera una clase builder que provee metodos getter ysetter para cada campo y otros metodos adicionales.

Diseno de sistemas distribuidos – Caso de estudio: Google 42 / 85

Page 132: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Los siguientes metodos son generados para el campo title:

public boolean hasTitle();

public java.lang.String getTitle();

public Builder setTitle(String value);

public Builder clearTitle();

La importancia de la clase builder se da porque mientras que losmensajes son inmutables en protocol buffers, los builders sı puedencambiarse y son utilizados para construir y manipular mensajes.

Diseno de sistemas distribuidos – Caso de estudio: Google 43 / 85

Page 133: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Para campos con etiqueta repeated el codigo generado es algo mascomplejo, con metodos para regresar un contador con el numero deelementos en la lista asociada, para obtener o asignar camposespecıficos en la lista, para agregar un nuevo elemento a la lista ypara agregar un conjunto de elementos a la lista.

Diseno de sistemas distribuidos – Caso de estudio: Google 44 / 85

Page 134: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Los siguientes son los asociados al campo keyword:

public List<string>getKeywordList();

public int getKeywordCount();

public string getKeyword(int index);

public Builder setKeyword(int index, string value);

public Builder addKeyword(string value);

public Builder addAllKeyword(Iterable<string>value);

public Builder clearKeyword();

El codigo generado tambien provee otros metodos para manipularmensajes, como toString, o para parsear mensajes entrantes.

Diseno de sistemas distribuidos – Caso de estudio: Google 45 / 85

Page 135: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Este formato es bastante simple comparado con XML y segun susdesarrolladores:

De 3 a 10 veces mas pequeno que XML.

De 10 a 100 veces mas rapido que XML.

Su API es tambien mas simple.

Diseno de sistemas distribuidos – Caso de estudio: Google 46 / 85

Page 136: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Este formato es bastante simple comparado con XML y segun susdesarrolladores:

De 3 a 10 veces mas pequeno que XML.

De 10 a 100 veces mas rapido que XML.

Su API es tambien mas simple.

Diseno de sistemas distribuidos – Caso de estudio: Google 46 / 85

Page 137: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Este formato es bastante simple comparado con XML y segun susdesarrolladores:

De 3 a 10 veces mas pequeno que XML.

De 10 a 100 veces mas rapido que XML.

Su API es tambien mas simple.

Diseno de sistemas distribuidos – Caso de estudio: Google 46 / 85

Page 138: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Este formato es bastante simple comparado con XML y segun susdesarrolladores:

De 3 a 10 veces mas pequeno que XML.

De 10 a 100 veces mas rapido que XML.

Su API es tambien mas simple.

Diseno de sistemas distribuidos – Caso de estudio: Google 46 / 85

Page 139: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Sin embargo, esta comparacion no es del todo justa, por dosrazones:

La infraestructura de Google es un sistema relativamentecerrado y, a diferencia de XML, no debe lidiar con problemasde interoperabilidad entre sistemas abiertos.

XML es significativamente mas rico en el sentido de quegenera mensajes auto-descriptivos que contienen los datos ylos metadatos asociados que describen la estructura de losmensajes. Protocol buffers no provee esta facilidaddirectamente (aunque es posible conseguir este efectosolicitando a protoc que genere un FileDescriptorSet).

Diseno de sistemas distribuidos – Caso de estudio: Google 47 / 85

Page 140: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Sin embargo, esta comparacion no es del todo justa, por dosrazones:

La infraestructura de Google es un sistema relativamentecerrado y, a diferencia de XML, no debe lidiar con problemasde interoperabilidad entre sistemas abiertos.

XML es significativamente mas rico en el sentido de quegenera mensajes auto-descriptivos que contienen los datos ylos metadatos asociados que describen la estructura de losmensajes. Protocol buffers no provee esta facilidaddirectamente (aunque es posible conseguir este efectosolicitando a protoc que genere un FileDescriptorSet).

Diseno de sistemas distribuidos – Caso de estudio: Google 47 / 85

Page 141: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplo de protocol buffers

Sin embargo, esta comparacion no es del todo justa, por dosrazones:

La infraestructura de Google es un sistema relativamentecerrado y, a diferencia de XML, no debe lidiar con problemasde interoperabilidad entre sistemas abiertos.

XML es significativamente mas rico en el sentido de quegenera mensajes auto-descriptivos que contienen los datos ylos metadatos asociados que describen la estructura de losmensajes. Protocol buffers no provee esta facilidaddirectamente (aunque es posible conseguir este efectosolicitando a protoc que genere un FileDescriptorSet).

Diseno de sistemas distribuidos – Caso de estudio: Google 47 / 85

Page 142: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

Protocol buffers es un mecanismo general que puede serutilizado para almacenamiento o para comunicacion.

El uso mas comun es para especificar intercambios de RPC atraves de la red, acomodada con una sintaxis extra en ellenguaje.

Diseno de sistemas distribuidos – Caso de estudio: Google 48 / 85

Page 143: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

Protocol buffers es un mecanismo general que puede serutilizado para almacenamiento o para comunicacion.

El uso mas comun es para especificar intercambios de RPC atraves de la red, acomodada con una sintaxis extra en ellenguaje.

Diseno de sistemas distribuidos – Caso de estudio: Google 48 / 85

Page 144: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

service SearchService {rpc Search (RequestType) returns (ResponseType);

}

Este fragmento de codigo especifica una interfaz de serviciollamada SearchService.

Contiene una operacion remota: Search.

Search toma un parametro de tipo RequestType y regresa unparametro de tipo ResponseType.

Diseno de sistemas distribuidos – Caso de estudio: Google 49 / 85

Page 145: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

service SearchService {rpc Search (RequestType) returns (ResponseType);

}Este fragmento de codigo especifica una interfaz de serviciollamada SearchService.

Contiene una operacion remota: Search.

Search toma un parametro de tipo RequestType y regresa unparametro de tipo ResponseType.

Diseno de sistemas distribuidos – Caso de estudio: Google 49 / 85

Page 146: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

service SearchService {rpc Search (RequestType) returns (ResponseType);

}Este fragmento de codigo especifica una interfaz de serviciollamada SearchService.

Contiene una operacion remota: Search.

Search toma un parametro de tipo RequestType y regresa unparametro de tipo ResponseType.

Diseno de sistemas distribuidos – Caso de estudio: Google 49 / 85

Page 147: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Soporte de RPC

service SearchService {rpc Search (RequestType) returns (ResponseType);

}Este fragmento de codigo especifica una interfaz de serviciollamada SearchService.

Contiene una operacion remota: Search.

Search toma un parametro de tipo RequestType y regresa unparametro de tipo ResponseType.

Diseno de sistemas distribuidos – Caso de estudio: Google 49 / 85

Page 148: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Publish-subscribe

Principal aplicacion: sistema de Google Ads.

Google adopta un sistema basado en topicos.

Diseno de sistemas distribuidos – Caso de estudio: Google 50 / 85

Page 149: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Publish-subscribe

Principal aplicacion: sistema de Google Ads.

Google adopta un sistema basado en topicos.

Diseno de sistemas distribuidos – Caso de estudio: Google 50 / 85

Page 150: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Resumen de elecciones de diseno

Diseno de sistemas distribuidos – Caso de estudio: Google 51 / 85

Page 151: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Resumen de elecciones de diseno

Diseno de sistemas distribuidos – Caso de estudio: Google 52 / 85

Page 152: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Outline

1 Introduccion

2 Arquitectura

3 Comunicacion

4 Almacenamiento y coordinacion

5 Computacion distribuida

Diseno de sistemas distribuidos – Caso de estudio: Google 53 / 85

Page 153: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Almacenamiento de datos y servicios de coordinacion

Veremos tres componentes que juntos proveen servicios dealmacenamiento de datos y coordinacion a las aplicaciones de altonivel. Se trata de servicios complementarios dentro de lainfraestructura de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 54 / 85

Page 154: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Almacenamiento de datos y servicios de coordinacion

Google File System. Es un sistema de archivos distribuido queofrece servicios de forma similar a NFS y AFS. Permite elacceso a datos no estructurados (en forma de archivos), perooptimizado para el estilo de datos y acceso que requiereGoogle (por ejemplo, archivos muy grandes).

Chubby. Es un servicio que soporta cerraduras distribuidaspara coordinacion y para el almacenamiento de pequenascantidades de datos.

Bigtable. Ofrece acceso a datos mas estructurados en formade tablas que pueden ser indexadas de diferentes formas,incluyendo por filas o por columnas. Es un tipo de base dedatos distribuida, pero a diferencia de muchas bases de datosno soporta operadores relacionales completos (estos son vistospor Google como innecesariamente complejos y no escalables).

Diseno de sistemas distribuidos – Caso de estudio: Google 55 / 85

Page 155: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Almacenamiento de datos y servicios de coordinacion

Google File System. Es un sistema de archivos distribuido queofrece servicios de forma similar a NFS y AFS. Permite elacceso a datos no estructurados (en forma de archivos), perooptimizado para el estilo de datos y acceso que requiereGoogle (por ejemplo, archivos muy grandes).

Chubby. Es un servicio que soporta cerraduras distribuidaspara coordinacion y para el almacenamiento de pequenascantidades de datos.

Bigtable. Ofrece acceso a datos mas estructurados en formade tablas que pueden ser indexadas de diferentes formas,incluyendo por filas o por columnas. Es un tipo de base dedatos distribuida, pero a diferencia de muchas bases de datosno soporta operadores relacionales completos (estos son vistospor Google como innecesariamente complejos y no escalables).

Diseno de sistemas distribuidos – Caso de estudio: Google 55 / 85

Page 156: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Almacenamiento de datos y servicios de coordinacion

Google File System. Es un sistema de archivos distribuido queofrece servicios de forma similar a NFS y AFS. Permite elacceso a datos no estructurados (en forma de archivos), perooptimizado para el estilo de datos y acceso que requiereGoogle (por ejemplo, archivos muy grandes).

Chubby. Es un servicio que soporta cerraduras distribuidaspara coordinacion y para el almacenamiento de pequenascantidades de datos.

Bigtable. Ofrece acceso a datos mas estructurados en formade tablas que pueden ser indexadas de diferentes formas,incluyendo por filas o por columnas. Es un tipo de base dedatos distribuida, pero a diferencia de muchas bases de datosno soporta operadores relacionales completos (estos son vistospor Google como innecesariamente complejos y no escalables).

Diseno de sistemas distribuidos – Caso de estudio: Google 55 / 85

Page 157: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Almacenamiento de datos y servicios de coordinacion

Los tres servicios son interdependientes. Por ejemplo, Bigtable usaGFS para el almacenamiento y Chubby para la coordinacion.

Diseno de sistemas distribuidos – Caso de estudio: Google 56 / 85

Page 158: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Es un sistema de archivos distribuido especializado en losrequerimientos de Google en cuanto al almacenamiento yacceso a cantidades muy grandes de datos.

Estos requerimientos incluyen el correr de forma confiabledentro de la infraestructura de Google, compuesta de unagran cantidad de servidores de bajo costo.

El diseno contempla que el hardware o el software puedenfallar en cualquier momento por lo que el sistema debe sertolerante con dichas fallas y permitir que las aplicaciones dealto nivel continuen corriendo.

Diseno de sistemas distribuidos – Caso de estudio: Google 57 / 85

Page 159: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Es un sistema de archivos distribuido especializado en losrequerimientos de Google en cuanto al almacenamiento yacceso a cantidades muy grandes de datos.

Estos requerimientos incluyen el correr de forma confiabledentro de la infraestructura de Google, compuesta de unagran cantidad de servidores de bajo costo.

El diseno contempla que el hardware o el software puedenfallar en cualquier momento por lo que el sistema debe sertolerante con dichas fallas y permitir que las aplicaciones dealto nivel continuen corriendo.

Diseno de sistemas distribuidos – Caso de estudio: Google 57 / 85

Page 160: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Es un sistema de archivos distribuido especializado en losrequerimientos de Google en cuanto al almacenamiento yacceso a cantidades muy grandes de datos.

Estos requerimientos incluyen el correr de forma confiabledentro de la infraestructura de Google, compuesta de unagran cantidad de servidores de bajo costo.

El diseno contempla que el hardware o el software puedenfallar en cualquier momento por lo que el sistema debe sertolerante con dichas fallas y permitir que las aplicaciones dealto nivel continuen corriendo.

Diseno de sistemas distribuidos – Caso de estudio: Google 57 / 85

Page 161: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

GFS debe escalar, tanto en cuanto al volumen de datos comoa la cantidad de usuarios.

Debe soportar el desarrollo de nuevas aplicaciones web.

Se prioriza el rendimiento en la lectura de datos.

GFS esta optimizado para los patrones de uso y acceso a datosde Google. El numero de archivos tiende a no ser muy grandepero sı su tamano (en 2003, del orden de un millon de archivosde 100 MB en promedio, pero algunos de mas de 1 GB).

Diseno de sistemas distribuidos – Caso de estudio: Google 58 / 85

Page 162: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

GFS debe escalar, tanto en cuanto al volumen de datos comoa la cantidad de usuarios.

Debe soportar el desarrollo de nuevas aplicaciones web.

Se prioriza el rendimiento en la lectura de datos.

GFS esta optimizado para los patrones de uso y acceso a datosde Google. El numero de archivos tiende a no ser muy grandepero sı su tamano (en 2003, del orden de un millon de archivosde 100 MB en promedio, pero algunos de mas de 1 GB).

Diseno de sistemas distribuidos – Caso de estudio: Google 58 / 85

Page 163: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

GFS debe escalar, tanto en cuanto al volumen de datos comoa la cantidad de usuarios.

Debe soportar el desarrollo de nuevas aplicaciones web.

Se prioriza el rendimiento en la lectura de datos.

GFS esta optimizado para los patrones de uso y acceso a datosde Google. El numero de archivos tiende a no ser muy grandepero sı su tamano (en 2003, del orden de un millon de archivosde 100 MB en promedio, pero algunos de mas de 1 GB).

Diseno de sistemas distribuidos – Caso de estudio: Google 58 / 85

Page 164: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

GFS debe escalar, tanto en cuanto al volumen de datos comoa la cantidad de usuarios.

Debe soportar el desarrollo de nuevas aplicaciones web.

Se prioriza el rendimiento en la lectura de datos.

GFS esta optimizado para los patrones de uso y acceso a datosde Google. El numero de archivos tiende a no ser muy grandepero sı su tamano (en 2003, del orden de un millon de archivosde 100 MB en promedio, pero algunos de mas de 1 GB).

Diseno de sistemas distribuidos – Caso de estudio: Google 58 / 85

Page 165: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Aunque no provee compatibilidad completa con POSIX, muchas desus operaciones son familiares para los usuarios de sistemas de estetipo:

create y delete

open y close

read y write

snapshot y record append

Diseno de sistemas distribuidos – Caso de estudio: Google 59 / 85

Page 166: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Aunque no provee compatibilidad completa con POSIX, muchas desus operaciones son familiares para los usuarios de sistemas de estetipo:

create y delete

open y close

read y write

snapshot y record append

Diseno de sistemas distribuidos – Caso de estudio: Google 59 / 85

Page 167: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Aunque no provee compatibilidad completa con POSIX, muchas desus operaciones son familiares para los usuarios de sistemas de estetipo:

create y delete

open y close

read y write

snapshot y record append

Diseno de sistemas distribuidos – Caso de estudio: Google 59 / 85

Page 168: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Google File System

Aunque no provee compatibilidad completa con POSIX, muchas desus operaciones son familiares para los usuarios de sistemas de estetipo:

create y delete

open y close

read y write

snapshot y record append

Diseno de sistemas distribuidos – Caso de estudio: Google 59 / 85

Page 169: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura

Diseno de sistemas distribuidos – Caso de estudio: Google 60 / 85

Page 170: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Problemas del esquema centralizado

El master es un cuello de botella.

A pesar de la reduccion de metadatos, la cantidad de estos hacrecido tanto que ya es difıcil mantenerlos en memoriaprincipal.

Por esta razon en este momento Google esta trabajando en unasolucion de master distribuido.

Diseno de sistemas distribuidos – Caso de estudio: Google 61 / 85

Page 171: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Problemas del esquema centralizado

El master es un cuello de botella.

A pesar de la reduccion de metadatos, la cantidad de estos hacrecido tanto que ya es difıcil mantenerlos en memoriaprincipal.

Por esta razon en este momento Google esta trabajando en unasolucion de master distribuido.

Diseno de sistemas distribuidos – Caso de estudio: Google 61 / 85

Page 172: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Problemas del esquema centralizado

El master es un cuello de botella.

A pesar de la reduccion de metadatos, la cantidad de estos hacrecido tanto que ya es difıcil mantenerlos en memoriaprincipal.

Por esta razon en este momento Google esta trabajando en unasolucion de master distribuido.

Diseno de sistemas distribuidos – Caso de estudio: Google 61 / 85

Page 173: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Caching

GFS no hace mucho uso de caching.

Informacion sobre la ubicacion de los chunks esta en cache enlos clientes luego del primer uso para minimizar las consultasal master.

No se guarda en cache el contenido de los archivos.

Se evita el uso de protocolos para la consistencia de lascaches.

Tampoco se usan caches a nivel de servidor mas que losbufers de Linux.

Diseno de sistemas distribuidos – Caso de estudio: Google 62 / 85

Page 174: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Caching

GFS no hace mucho uso de caching.

Informacion sobre la ubicacion de los chunks esta en cache enlos clientes luego del primer uso para minimizar las consultasal master.

No se guarda en cache el contenido de los archivos.

Se evita el uso de protocolos para la consistencia de lascaches.

Tampoco se usan caches a nivel de servidor mas que losbufers de Linux.

Diseno de sistemas distribuidos – Caso de estudio: Google 62 / 85

Page 175: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Caching

GFS no hace mucho uso de caching.

Informacion sobre la ubicacion de los chunks esta en cache enlos clientes luego del primer uso para minimizar las consultasal master.

No se guarda en cache el contenido de los archivos.

Se evita el uso de protocolos para la consistencia de lascaches.

Tampoco se usan caches a nivel de servidor mas que losbufers de Linux.

Diseno de sistemas distribuidos – Caso de estudio: Google 62 / 85

Page 176: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Caching

GFS no hace mucho uso de caching.

Informacion sobre la ubicacion de los chunks esta en cache enlos clientes luego del primer uso para minimizar las consultasal master.

No se guarda en cache el contenido de los archivos.

Se evita el uso de protocolos para la consistencia de lascaches.

Tampoco se usan caches a nivel de servidor mas que losbufers de Linux.

Diseno de sistemas distribuidos – Caso de estudio: Google 62 / 85

Page 177: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Caching

GFS no hace mucho uso de caching.

Informacion sobre la ubicacion de los chunks esta en cache enlos clientes luego del primer uso para minimizar las consultasal master.

No se guarda en cache el contenido de los archivos.

Se evita el uso de protocolos para la consistencia de lascaches.

Tampoco se usan caches a nivel de servidor mas que losbufers de Linux.

Diseno de sistemas distribuidos – Caso de estudio: Google 62 / 85

Page 178: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Logging

GFS es un ejemplo clave del uso de logging en Google para elsoporte de debugging y analisis de rendimiento.

Los servidores de GFS mantienen logs de diagnosticoextensivos que guardan eventos significativos y todas lassolicitudes y respuestas de RPC.

Estos logs son monitoreados continuamente.

Son usados cuando se dan problemas en el sistema paraidentificar las causas subyacentes.

Diseno de sistemas distribuidos – Caso de estudio: Google 63 / 85

Page 179: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Logging

GFS es un ejemplo clave del uso de logging en Google para elsoporte de debugging y analisis de rendimiento.

Los servidores de GFS mantienen logs de diagnosticoextensivos que guardan eventos significativos y todas lassolicitudes y respuestas de RPC.

Estos logs son monitoreados continuamente.

Son usados cuando se dan problemas en el sistema paraidentificar las causas subyacentes.

Diseno de sistemas distribuidos – Caso de estudio: Google 63 / 85

Page 180: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Logging

GFS es un ejemplo clave del uso de logging en Google para elsoporte de debugging y analisis de rendimiento.

Los servidores de GFS mantienen logs de diagnosticoextensivos que guardan eventos significativos y todas lassolicitudes y respuestas de RPC.

Estos logs son monitoreados continuamente.

Son usados cuando se dan problemas en el sistema paraidentificar las causas subyacentes.

Diseno de sistemas distribuidos – Caso de estudio: Google 63 / 85

Page 181: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Logging

GFS es un ejemplo clave del uso de logging en Google para elsoporte de debugging y analisis de rendimiento.

Los servidores de GFS mantienen logs de diagnosticoextensivos que guardan eventos significativos y todas lassolicitudes y respuestas de RPC.

Estos logs son monitoreados continuamente.

Son usados cuando se dan problemas en el sistema paraidentificar las causas subyacentes.

Diseno de sistemas distribuidos – Caso de estudio: Google 63 / 85

Page 182: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Administracion de consistencia en GFS

Dado que los datos son replicados en GFS, es importantemantener la consistencia de las replicas durante lasoperaciones que alteran los datos, es decir, las operacioneswrite y record append.

Los clientes envıan los cambios a todas las replicas pero lasolicitud de cambio se la envıan solo al primario.

El primario se encarga entonces de coordinar las mutacionesen las replicas.

De este modo se crea una separacion entre el flujo de datos yel flujo de control.

Diseno de sistemas distribuidos – Caso de estudio: Google 64 / 85

Page 183: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Administracion de consistencia en GFS

Dado que los datos son replicados en GFS, es importantemantener la consistencia de las replicas durante lasoperaciones que alteran los datos, es decir, las operacioneswrite y record append.

Los clientes envıan los cambios a todas las replicas pero lasolicitud de cambio se la envıan solo al primario.

El primario se encarga entonces de coordinar las mutacionesen las replicas.

De este modo se crea una separacion entre el flujo de datos yel flujo de control.

Diseno de sistemas distribuidos – Caso de estudio: Google 64 / 85

Page 184: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Administracion de consistencia en GFS

Dado que los datos son replicados en GFS, es importantemantener la consistencia de las replicas durante lasoperaciones que alteran los datos, es decir, las operacioneswrite y record append.

Los clientes envıan los cambios a todas las replicas pero lasolicitud de cambio se la envıan solo al primario.

El primario se encarga entonces de coordinar las mutacionesen las replicas.

De este modo se crea una separacion entre el flujo de datos yel flujo de control.

Diseno de sistemas distribuidos – Caso de estudio: Google 64 / 85

Page 185: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Administracion de consistencia en GFS

Dado que los datos son replicados en GFS, es importantemantener la consistencia de las replicas durante lasoperaciones que alteran los datos, es decir, las operacioneswrite y record append.

Los clientes envıan los cambios a todas las replicas pero lasolicitud de cambio se la envıan solo al primario.

El primario se encarga entonces de coordinar las mutacionesen las replicas.

De este modo se crea una separacion entre el flujo de datos yel flujo de control.

Diseno de sistemas distribuidos – Caso de estudio: Google 64 / 85

Page 186: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Chubby es un servicio crucial en el corazon de lainfraestructura de Google.

Ofrece servicios de almacenamiento y servicios decoordinacion para otros servicios de la infraestructura,incluyendo GFS y Bigtable.

Diseno de sistemas distribuidos – Caso de estudio: Google 65 / 85

Page 187: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Chubby es un servicio crucial en el corazon de lainfraestructura de Google.

Ofrece servicios de almacenamiento y servicios decoordinacion para otros servicios de la infraestructura,incluyendo GFS y Bigtable.

Diseno de sistemas distribuidos – Caso de estudio: Google 65 / 85

Page 188: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Los servicios de Chubby permiten cuatro capacidades diferentes:

Proveen cerraduras distribuidas para sincronizar actividades enun ambiente a gran escala, no sincronizado.

Proveen un sistema de archivos que permite guardar archivospequenos de forma confiable (complementando los serviciosde GFS).

Pueden ser utilizados para ayudar en la eleccion de unprimario dentro un conjunto de replicas.

Se utiliza como un servicio de denominacion (name service)dentro de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 66 / 85

Page 189: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Los servicios de Chubby permiten cuatro capacidades diferentes:

Proveen cerraduras distribuidas para sincronizar actividades enun ambiente a gran escala, no sincronizado.

Proveen un sistema de archivos que permite guardar archivospequenos de forma confiable (complementando los serviciosde GFS).

Pueden ser utilizados para ayudar en la eleccion de unprimario dentro un conjunto de replicas.

Se utiliza como un servicio de denominacion (name service)dentro de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 66 / 85

Page 190: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Los servicios de Chubby permiten cuatro capacidades diferentes:

Proveen cerraduras distribuidas para sincronizar actividades enun ambiente a gran escala, no sincronizado.

Proveen un sistema de archivos que permite guardar archivospequenos de forma confiable (complementando los serviciosde GFS).

Pueden ser utilizados para ayudar en la eleccion de unprimario dentro un conjunto de replicas.

Se utiliza como un servicio de denominacion (name service)dentro de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 66 / 85

Page 191: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Los servicios de Chubby permiten cuatro capacidades diferentes:

Proveen cerraduras distribuidas para sincronizar actividades enun ambiente a gran escala, no sincronizado.

Proveen un sistema de archivos que permite guardar archivospequenos de forma confiable (complementando los serviciosde GFS).

Pueden ser utilizados para ayudar en la eleccion de unprimario dentro un conjunto de replicas.

Se utiliza como un servicio de denominacion (name service)dentro de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 66 / 85

Page 192: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Este recargo de funciones parece contradecir el principio desimplicidad en el diseno de Google.

Sin embargo, en el fondo, Chubby ofrece un serviciofundamental que es una solucion al problema de consensodistribuido.

Las demas facetas afloran a partir de este servicio fundamentalque esta optimizado para el estilo de uso de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 67 / 85

Page 193: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Este recargo de funciones parece contradecir el principio desimplicidad en el diseno de Google.

Sin embargo, en el fondo, Chubby ofrece un serviciofundamental que es una solucion al problema de consensodistribuido.

Las demas facetas afloran a partir de este servicio fundamentalque esta optimizado para el estilo de uso de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 67 / 85

Page 194: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Chubby

Este recargo de funciones parece contradecir el principio desimplicidad en el diseno de Google.

Sin embargo, en el fondo, Chubby ofrece un serviciofundamental que es una solucion al problema de consensodistribuido.

Las demas facetas afloran a partir de este servicio fundamentalque esta optimizado para el estilo de uso de Google.

Diseno de sistemas distribuidos – Caso de estudio: Google 67 / 85

Page 195: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Interfaz de Chubby

Chubby provee una abstraccion basada en un sistema dearchivos, donde cada objeto de datos es un archivo.

Los archivos se organizan de forma jerarquica por medio dedirectorios.

/ls/chubby-cell/directory-name/.../file-name

/ls/local

Diseno de sistemas distribuidos – Caso de estudio: Google 68 / 85

Page 196: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Interfaz de Chubby

Chubby provee una abstraccion basada en un sistema dearchivos, donde cada objeto de datos es un archivo.

Los archivos se organizan de forma jerarquica por medio dedirectorios.

/ls/chubby-cell/directory-name/.../file-name

/ls/local

Diseno de sistemas distribuidos – Caso de estudio: Google 68 / 85

Page 197: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Interfaz de Chubby

Chubby provee una abstraccion basada en un sistema dearchivos, donde cada objeto de datos es un archivo.

Los archivos se organizan de forma jerarquica por medio dedirectorios.

/ls/chubby-cell/directory-name/.../file-name

/ls/local

Diseno de sistemas distribuidos – Caso de estudio: Google 68 / 85

Page 198: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Interfaz de Chubby

Chubby provee una abstraccion basada en un sistema dearchivos, donde cada objeto de datos es un archivo.

Los archivos se organizan de forma jerarquica por medio dedirectorios.

/ls/chubby-cell/directory-name/.../file-name

/ls/local

Diseno de sistemas distribuidos – Caso de estudio: Google 68 / 85

Page 199: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

API de Chubby

Diseno de sistemas distribuidos – Caso de estudio: Google 69 / 85

Page 200: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Elecciones de primarios

Elegir una replica como primario.

Todos los candidatos tratan de obtener una cerraduraasociada con la eleccion.

Solo uno lo adquiere y se convierte en primario (inscribe su iden el archivo).

Todos los demas son secundarios.

Diseno de sistemas distribuidos – Caso de estudio: Google 70 / 85

Page 201: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Elecciones de primarios

Elegir una replica como primario.

Todos los candidatos tratan de obtener una cerraduraasociada con la eleccion.

Solo uno lo adquiere y se convierte en primario (inscribe su iden el archivo).

Todos los demas son secundarios.

Diseno de sistemas distribuidos – Caso de estudio: Google 70 / 85

Page 202: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Elecciones de primarios

Elegir una replica como primario.

Todos los candidatos tratan de obtener una cerraduraasociada con la eleccion.

Solo uno lo adquiere y se convierte en primario (inscribe su iden el archivo).

Todos los demas son secundarios.

Diseno de sistemas distribuidos – Caso de estudio: Google 70 / 85

Page 203: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Elecciones de primarios

Elegir una replica como primario.

Todos los candidatos tratan de obtener una cerraduraasociada con la eleccion.

Solo uno lo adquiere y se convierte en primario (inscribe su iden el archivo).

Todos los demas son secundarios.

Diseno de sistemas distribuidos – Caso de estudio: Google 70 / 85

Page 204: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura de Chubby

Diseno de sistemas distribuidos – Caso de estudio: Google 71 / 85

Page 205: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Intercambio de mensajes en Paxos

Diseno de sistemas distribuidos – Caso de estudio: Google 72 / 85

Page 206: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Intercambio de mensajes en Paxos

Diseno de sistemas distribuidos – Caso de estudio: Google 73 / 85

Page 207: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Intercambio de mensajes en Paxos

Diseno de sistemas distribuidos – Caso de estudio: Google 74 / 85

Page 208: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Abstraccion de tabla en Bigtable

Diseno de sistemas distribuidos – Caso de estudio: Google 75 / 85

Page 209: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura de Bigtable

Diseno de sistemas distribuidos – Caso de estudio: Google 76 / 85

Page 210: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Arquitectura del almacenamiento en Bigtable

Diseno de sistemas distribuidos – Caso de estudio: Google 77 / 85

Page 211: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

El esquema de indexado jerarquico en Bigtable

Diseno de sistemas distribuidos – Caso de estudio: Google 78 / 85

Page 212: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Resumen de opciones de diseno

Diseno de sistemas distribuidos – Caso de estudio: Google 79 / 85

Page 213: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Outline

1 Introduccion

2 Arquitectura

3 Comunicacion

4 Almacenamiento y coordinacion

5 Computacion distribuida

Diseno de sistemas distribuidos – Caso de estudio: Google 80 / 85

Page 214: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Servicios de computacion distribuida

MapReduce

Sawzall

Diseno de sistemas distribuidos – Caso de estudio: Google 81 / 85

Page 215: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejemplos de uso de MapReduce

Diseno de sistemas distribuidos – Caso de estudio: Google 82 / 85

Page 216: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejecucion de un programa MapReduce

Diseno de sistemas distribuidos – Caso de estudio: Google 83 / 85

Page 217: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Ejecucion de un programa Sawzall

Diseno de sistemas distribuidos – Caso de estudio: Google 84 / 85

Page 218: Procesos distribuidos Diseño de sistemas distribuidos Caso

Introduccion Arquitectura Comunicacion Almacenamiento y coordinacion Computacion distribuida

Resumen de opciones de diseno

Diseno de sistemas distribuidos – Caso de estudio: Google 85 / 85