37
Busca na web para um planeta A Arquitetura de Cluster do Google

Arquitetura de Cluster do Google

Embed Size (px)

Citation preview

Page 1: Arquitetura de Cluster do Google

Busca na web para um planeta

A Arquitetura de Cluster do Google

Page 2: Arquitetura de Cluster do Google

Apresentado por:

• Alison Miazaki• Filipe Morgado Simões de Campos• Guilherme Fré• Rafael Barbolo Lopes• Rafael Ivan Garcia

Page 3: Arquitetura de Cluster do Google

Fonte de Dados

• Dados apresentados com base em um artigo publicado pelo Google em 2003

Web Search for a Planet: The Google Cluster Architecture

Luiz Barroso, Jeffrey Dean, and Urs Hoelzlehttp://research.google.com/archive/googlecluster.html

Page 4: Arquitetura de Cluster do Google

Resumo

“ Com extensivo uso de paralelização, a busca do Google permite que diferentes consultas sejam executadas em diferentes processadores, dividindo o índice de busca, também permitindo que uma única consulta seja executada por múltiplos processadores.Para lidar com esta carga de trabalho, a arquitetura do Google é implementada com clusters de mais de 15.000 PCs simples com software tolerante a falhas. Essa arquitetura atinge performance superior por uma fração do custo de um sistema com menos servidores de alto padrão, porém mais caros.

Page 5: Arquitetura de Cluster do Google

O Buscador Perfeito“Entende exatamente o que você quis dizer e devolve exatamente o que você queria”

Larry Page

<html><title>Corp. Info - Tech Overview</title> <body><h1>Corporate Information</h1><li><a href=“/home.htm”>Home</a></li><h2>Technology Overview</h2><p>We stand alone in our focus on developing the "perfect search engine,

PageRank Análise e classificação do conteúdo HTML

Page 6: Arquitetura de Cluster do Google

Ciclo de vida de uma consulta

Um ciclo leva cerca de 0,5 segundo

Page 7: Arquitetura de Cluster do Google

Requisitos de uma consulta

• Processamento de centenas de megabytes• Bilhões de ciclos de CPU• Executar em paralelo com milhares de outras

consultas

Page 8: Arquitetura de Cluster do Google

Google: Alcançando Alta performance

• Banco de Dados: BigTable• Sistema de Arquivos: Google File System• Arquitetura: Clusters de Multicomputadores

baratos

Page 9: Arquitetura de Cluster do Google

Clusters deMulticomputadores baratos

Page 10: Arquitetura de Cluster do Google

Rede local: comunicação por

passagem de mensagens

PMPMPMPM

P MP MP MP M

PM

PM

PM

PM

PM

PM

PM

PM

Memória Processador

Multicomputador

Page 11: Arquitetura de Cluster do Google

Clusters do Google

• Mais de 15.000 PCs básicos• Software tolerante a falhas de PCs• Custo efetivo total menor que o custo de usar

servidores de alto padrão• Alta eficiência no consumo de energia• Alta razão performance/preço• Máquinas geograficamente distribuídas (evita

falhas localizadas em data centers e diminui Round Trip Time de requisições)

Page 12: Arquitetura de Cluster do Google

Paralelização

• Diferentes consultas podem rodar em diferentes processadores

• Uma única consulta pode utilizar diversos processadores

• Desta forma, a performance máxima de um processador é menos relevante do que seu performance/preço (parecido com pipeline: importante é a vazão e não o tempo para executar uma única consulta)

Page 13: Arquitetura de Cluster do Google

O que é melhor para o Google?

1. Um processador de 3GHz que custa R$ 4.0002. Um processador de 1GHz que custa R$ 100

Page 14: Arquitetura de Cluster do Google

O que é melhor para o Google?

1. Razão performance/preço = 0,75MHz/R$

2. Razão performance/preço = 10MHz/R$

Page 15: Arquitetura de Cluster do Google

Princípios da Arquitetura

Page 16: Arquitetura de Cluster do Google

Princípios da Arquitetura

1.Confiabilidade no software– Evita utilização de fontes de energia redundantes,

discos redundantes (RAID) e componentes de alta qualidade

– Os clusters possuem muitas máquinas simples e baratas

– Máquinas podem falhar– A confiabilidade está focada no software

Page 17: Arquitetura de Cluster do Google

Princípios da Arquitetura

2.Replicação– Aumenta a vazão e disponibilidade dos serviços– Máquinas diferentes podem disponibilizar os

mesmos serviços– Como a quantidade de máquinas para fornecer

capacidade de processamento de dados é grande, o custo da replicação de serviços é baixo

Page 18: Arquitetura de Cluster do Google

Princípios da Arquitetura

3.Preço/performance é melhor que medidas de performance em pico– A escolha de qual máquina comprar depende da

performance que será obtida por unidade de preço

– CPUs que fornecem o melhor processamento de pico (clock nominal) são menos significantes se seu preço for alto.

Page 19: Arquitetura de Cluster do Google

Princípios da Arquitetura

4.Uso de PCs básicos– Aumenta o poder computacional para cada

consulta que é feita– Permite usar algoritmos de busca mais custosos– Permite aumentar o índice de documentos

buscados– Durabilidade de um PC básico é de 2 ou 3 anos

Page 20: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Correção ortográfica

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Page 21: Arquitetura de Cluster do Google

Tratamento de consultas

Correção ortográfica

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Servidor Web do Google

Recebe termos da consulta

Page 22: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Correção ortográfica

Você quis dizer:

Page 23: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Correção ortográfica

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Servidor de Anúncios

AdSense e links patrocinados

Page 24: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Correção ortográfica

Servidor de Anúncios

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Índice invertido:palavra1: doc1 - doc12 - doc32 - doc43 - doc100palavra2: doc12 - doc132 doc181

(cada máquina possui um pedaço do índice)

Page 25: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Correção ortográfica

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Formatação do resultado:Extrai título e pequena descrição contendo termos da consulta de cada documento

(cada máquina possui um conjunto de documentos)

Page 26: Arquitetura de Cluster do Google

Tratamento de consultas

Correção ortográfica

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Servidor Web do Google

Retorna HTML com resultados da busca

Page 27: Arquitetura de Cluster do Google

Tratamento de consultas

Servidor Web do Google

Correção ortográfica

Servidor de Anúncios

Servidores de ÍndiceServidores de

ÍndiceServidores de ÍndiceServidores de

Índice

Servidores de DocumentosServidores de

DocumentosServidores de DocumentosServidores de

DocumentosServidores de Documentos

Page 28: Arquitetura de Cluster do Google

Configuração das máquinas• Um rack do google possui cerca de 80 servidores x86 que

possuem componentes equivalentes ao de um PC desktop, mas com disco rígido de grande capacidade

• CPUs: de processadores com apenas um núcleo como o Intel-Celeron 533 MHz a processadores com dois núcleos como o Intel Pentium III 1.4GHz

• Servidores de Índice possuem menos espaço de disco porque possuem carga de trabalho definida por intenso uso de CPU

• Conexões entre servidores de um mesmo rack com switches 100Mbps Ethernet. Cada switch é conectado a um switch principal com link gigabit que faz a conexão entre os racks

Page 29: Arquitetura de Cluster do Google

Comparação entre máquinasRack do Google

Dados de 2002

•88 servidores dual-CPU Intel Xeon, cada um com:

•2GHz / CPU•2GB RAM•80GB HD

•Total:•176 CPUs de 2-GHz cada•176 GB RAM•7 TB HD

Custo: U$ 278.000

Rack de um servidor de alto padrão

•8 servidores Intel Xeon, cada um com:

•2GHz•8GB RAM•1TB HD

•Total:•8 CPUs de 2-GHz cada•64 GB RAM•8 TB HD

Custo: U$ 758.000

Page 30: Arquitetura de Cluster do Google

Servidor de Índice

Page 31: Arquitetura de Cluster do Google

Servidor de Índice

• Principal atividade: decodificar informações comprimidas no índice invertido e encontrar entradas com documentos que satisfazem a busca.

Page 32: Arquitetura de Cluster do Google

Servidor de Índice

Medidas de uso de instruções em um Pentium III de 1-GHz dual core:

Característica Valor

Ciclos por Instrução (CPI) 1.1

Falha de previsão de desvio 5.0 %

Falha de acesso a blocos de instrução no cache L1 0.4%

Falha de acesso a blocos de dados no cache L1 0.7%

Falha de acesso a blocos no cache L2 0.3%

Falha de acesso a blocos de instrução no TLB 0.04%

Falha de acesso a blocos de dados no TLB 0.7%

Page 33: Arquitetura de Cluster do Google

Análise: Sistema de Memória

• Ocorrem poucas falhas para acessar instruções porque o servidor de índice possui um pequeno código em loop.

• O acesso a blocos de dados não se aproveita de localidade temporal devido à imprevisibilidade de acesso a blocos de dados do índice, porém se aproveita de localidade espacial porque acessa conjuntos de blocos próximos para decodificar o índice e realizar buscas.

Page 34: Arquitetura de Cluster do Google

Arquitetura do GoogleClusters de PCs básicos

Page 35: Arquitetura de Cluster do Google

Quando usar

• Serviços que requerem milhares de servidores e petabytes de armazenamento

• Foco em performance/preço• Servidores que não guardam estado (permitindo

replicação)• Intenso uso computacional• Volume de requisições a serem atendidas muito

alto• Aplicações que exigem paralelismo

Page 36: Arquitetura de Cluster do Google

Referências

• Google – Corporate Information – Technology Overview:– http://www.google.com/corporate/tech.html

• Google Research Publication: Web Search for a Planet:– http://research.google.com/archive/googlecluster.html

Page 37: Arquitetura de Cluster do Google

Obrigado