Académique Documents
Professionnel Documents
Culture Documents
SEMINRIO 1
ARQUITECTURA DE UM MOTOR DE
BUSCA:
EXEMPLO DO GOOGLE
por Vasco Nuno Sousa Simes Pereira
vasco@dei.uc.pt
Sumrio. Este artigo explica em modos gerais a arquitectura de um dos motores de busca mais populares
actualmente, o Google. Pretende-se mostrar como uma aplicao que lida com um volume de dados gigantesco pode
beneficiar de uma abordagem que envolve computao paralela e de bases de dados distribudas. No fim so feitas
algumas consideraes sobre aplicaes desta arquitectura a outros cenrios.
Palavras chave. Internet, bases de dados distribudas, computao paralela, motores de busca
1. Introduo
No incio a Internet era um meio de comunicao
acedido por apenas uma comunidade restrita. Com o
aparecimento da WWW (World Wide Web) com base
no protocolo HTTP (Hyper Text Transfer Protocol),
essa comunidade teve um crescimento exponencial,
permitindo o acesso generalizado de uma vasta faixa
de populao. Os novos utilizadores no s passaram
a poder aceder a um conjunto de informao de uma
maneira rpida como puderam tambm participar no
aumento dessa mesma informao criando sites
acerca dos mais variados temas e contedos. Isto
gerou uma dinmica nunca antes vista com milhares
de novos sites a aparecerem num curto espao de
tempo. Comeou ento a surgir a questo de como
catalogar esses sites, como fazer para que fossem do
conhecimento do resto da comunidade. As
abordagens tradicionais, como a lista telefnica,
tiveram um xito limitado pois a dinmica da Internet
no se compadecia com um meio de divulgao to
esttico. Na data de sada de cada lista j esta estava
completamente desactualizada, com uma grande parte
dos sites a ficar irremediavelmente de fora. Era ento
necessria outra forma de catalogar a Internet. Essa
soluo foi encontrada com motores de busca,
aplicaes que permitiam pesquisas pela Internet com
base em uma ou mais palavras-chave. Neste pequeno
artigo vai-se apresentar a arquitectura de um dos mais
populares motores de busca do momento, o Google.
O artigo no pretende ser exaustivo nem demasiado
profundo, apenas dar a conhecer uma aplicao
prtica, de grande relevncia, do uso massivo de
computao paralela e de bases de dados distribudas.
Este trabalho insere-se no mestrado em Informtica e
Sistemas do Departamento de Engenharia Informtica
da Universidade de Coimbra, e foca dois dos temas
abordados na disciplina de Seminrio 1, computao
paralela e bases de dados distribudas.
2. Soluo Google
Criado por dois investigadores da Universidade de
Stanford em 1998, o Google um dos mais populares
motores de busca da Internet, existindo em vrias
lnguas e distribudo por vrios continentes. Nas suas
bases de dados constam cerca de 6 bilies de itens,
maioritariamente pginas web [1], os quais tm
actualmente cerca de 200 milhes de acessos por dia.
De modo a suportar esta performance foi criado um
cluster de cerca de 15000 servidores Linux de baixo
custo que, num tempo mdio prximo do meio
segundo, devolve os resultados pretendidos pelo
utilizador. Na gnese da arquitectura do Google um
factor foi essencial: a relao preo/performance [2].
2003/2004
SEMINRIO 1
Escolha do
cluster no DNS
Cluster A
...
GWS 2
Verificador de
sintaxe
...
GWS 1
Cluster B
Servidor de
publicidade
Servidor de Indces 1
Servidor de docs 1
Servidor de Indces 2
Servidor de docs 2
...
...
Servidor de ndices 1
Sub-ndice 1
PC 1
PC 2
Sub-ndice 2
...
PC 1
...
...
2003/2004
SEMINRIO 1
3. Concluses
A soluo apresentada pela Google, idealizada para o
universo especfico dos motores de busca, permite
obter escalabilidade, fiabilidade e um elevado
desempenho, tendo como base um cluster de
mquinas comuns. No entanto, esta soluo s
possvel devido ao facto do problema dos motores de
busca ter algumas propriedades especiais. Entre estas
propriedades podemos destacar o facto de a maior
parte das operaes serem de leitura e de poderem
ocorrer em paralelo. Em cenrios que impliquem uma
constante actualizao ou insero de dados, o
software de controle e os processos de replicao dos
dados pelas vrias mquinas, teriam de ser bastante
mais complexos. Apesar disso, h uma srie de
aplicaes que podem beneficiar desta abordagem,
como o caso de servidores web que guardem
grandes quantidades de informao e em que as
escritas no sejam frequentes. Tambm repositrios
de informao como bases de dados de artigos
cientficos, catlogos on-line de equipamentos,
bibliotecas digitais on-line, podem beneficiar desta
abordagem. Outras aplicaes que no partilhem das
caractersticas enunciadas podem beneficiar de
solues mistas. Para isso ser necessrio criar uma
nova arquitectura, complementada com um software
de gesto que permita a manuteno da coerncia dos
dados
dentro
do
cluster,
sem
diminuir
significativamente a performance.
2003/2004
SEMINRIO 1
Referncias
1.
2.
3.
Brin, S., Page L. (1998) The Anatomy of a LargeScale Hypertextual Web Search Engine, Proc.
Seventh World Wide Web Conference
http://wwwdb.stanford.edu/pub/papers/google.pdf
4.
5.
6.
2003/2004
SEMINRIO 1
2003/2004