Datos curiosos sobre el buscador web de Google.
Infoxicandome como cada día encontré un artículo excelente acerca de la evolucion en el tiempo que ha tenido Google. El ingeniero Jeff Dean nos cuenta datos curiosos del ayer, hoy, el mañana y los desafios futuros del “Gigante Innovador de la Web”.
Jeff Dean es uno de los más prestigiosos ingenieros que trabajan en Google, y es una de las personas que mejor conoce la arquitectura del clúster de servidores que tiene su buscador web.
La semana pasada, Dean ha estado en Barcelona en unas conferencias en las que ha hecho públicas algunas cifras bastante llamativas del buscador web de Google y de su funcionamiento, que están resumidas en este post y este post de los blogs personales de dos de los asistentes.
Algunos de estos curiosos datos son:
:: En el periodo 1999-2009 han cambiado:
- el número de consultas en el buscador, que se ha multiplicado por 10.000
- el tiempo entre actualizaciones de un documento web, que se ha reducido 10.000 veces. Antes transcurrían meses hasta que se actualizaba en el índice un sitio web que había sido modificado, y ahora son solamente unos pocos minutos.
- la potencia de procesamiento, que se ha multiplicado por 1.000
- el tiempo de procesamiento de una consulta, que se ha reducido 5 veces. El tiempo medio hace 10 años era de 1 segundo, y ahora tarda unos 200 milisegundos. pagerank
:: Cosas que había a finales de los 90:
- existía un proceso batch que rastreaba las páginas web, y que se detenía cuando había ‘demasiadas’ páginas
- existía un proceso de indexado de estas páginas hecho con herramientas Unix, que era bastante propenso a fallar y a ser contradictorio
- el formato del índice original (año 1997) era un simple sistema ‘byte-aligned’ que codificaba información del campo ‘ocurrencias de una palabra’, lo que suponía un montón de accesos a disco.
:: Al de unos pocos años:
- se redujo un 30% el tamaño del índice, gracias a que se construyo otro de longitud variable basado en bloques que utilizaba tablas para palabras con un gran número de ocurrencias. Además de la reducción del tamaño, el índice era más fácil de decodificar
- se añadieron servidores de cacheo tanto para los resultados como para los ‘snippets’ de los documentos que aparecen en estos resultados
- a principios de 2001 comenzaron a utilizar un índice construido en memoria donde los servidores de indexado (junto a los servidores de documentos, servidores de cacheo, etc.) hablaban directamente con los servidores web donde los usuarios realizan las peticiones
- el índice fue particionado por documentos en lugar de por términos
:: Cosas que se han hecho últimamente:
- se utiliza tecnología contruida dentro de Google. Tanto la física (el diseño de los racks, las placas madre) como la lógica (modifica el kernel de Linux, sistema ‘Google File System’, sistema ‘BigTable’)
- se utiliza el entorno de desarrollo MapReduce para indexar
- en 2004 se comenzó a utilizar a un sistema jerárquico para servir los índices, y que estaba basado en índices constuidos sobre ‘Google File System’
- actualizaciones del índice mucho más rápidas
- en 2007 se añadió el servidor ‘super root’ que comunica con todos los servidores de índices (Google News, buscador de imágenes, buscador de vídeos) para permitir ‘Google Universal Search’
:: Pasos que Google sigue para experimentar con cambios en los algoritmos del buscador:
- se gesta una idea de nuevo ránking
- se generan datos para ejecutar pruebas rápidamente utilizando MapReduce, BigTable, etc.
- se realizan pruebas de los resultados tanto con humanos como con consultas aleatorias para comprobar los cambios en el ránking.
- se experimenta este cambio con un pequeño porcentaje de las búsquedas reales (por eso a veces los usuarios vemos experimentos)
- se realizan ajustes sobre la implementación para pre-procesar los datos y hacerlos factibles a plena carga, incorporando a su vez la información necesaria al índice
:: Futuros retos:
- manejo de información en diferentes idiomas. Actualmente hay una funcionalidad parecida, pero se pretende mejorarlo en muchos aspectos
- desarrollo de sistema capaz de mostrar en los resultados documentos tanto públicos (rastreados de la WWW), como privados (por ejemplo, archivos de ‘Google Docs’) o semi-privados (compartidos).
- construcción automática de sistemas de tratamiento de la información para diferentes necesidades.
Fuente: google.dirson.com