Datos sobre Google
Acabo de leer un artículo con datos muy interesantes sobre Google. Creo que todo el mundo conoce al (y en cierto modo depende del) famoso buscador. El artículo que está en inglés cuenta algunos datos que el vicepresidente de ingeniería de Google contó en una conferencia en Londres.
La última vez que me había intrigado el funcionamiento de Google, habia descubierto que utilizaban unos 8000 equipos (PCs en formato rack de lo más vulgar) ejecutando GNU/Linux para formar el mejor ejemplo de Cluster que puedo comentar en mis clases de Sistemas Operativos. Supongo que todavía lo sigue siendo, primero porque todo el mundo conoce Google y hay que ser muy tocho para no preguntarse cómo demonios es capaz de indexar con tal eficacia la ingente cantidad de información que maneja. Segundo porque en palabras de Urs Hölze (vicepresidente de ingenieria en Google), ahora tienen hasta 2000 equipos en un cluster, sólo que cuentan con unos 30 clústers !!!
Las cifras sobre Google impresionan por sí solas:
- Unos 4000 millones de páginas web indexadas
- Hasta 2000 PCs por cluster
- Unos 30 clústers
- Interfaz accesible en 104 idiomas, incluyendo el Klingon, el Tagalo y el H4ck3r (Sinceramente, creo aún les falta el Sindarín, Kûduk y otros tantos)
- Un PetaByte de datos por cluster (250 Bytes). Suficiente para que el ratio de error típico del hardware de 10-15 comience a crear problemas
- Se mantienen velocidades de 2Gbps por cluster
- Se espera que unas dos máquinas por cluster se rompan cada dia
- Ningún apagón completo desde Febrero del 2000
Google es una empresa especial en muchos sentidos, porque ha revolucionado las búsquedas de información en la web, porque es un caso de éxito muy particular, porque cuenta con 200 doctores en informática y otros 600 científicos y porque es capaz de poner una tecnologia muy compleja a disposición de todo el mundo y además lo hace de forma gratuita.
Y lo mejor de todo es que funciona. Así que Google indexa unos 40TB de la web y en esos contenidos resuelve una media de 1000 consultas por segundo, dia y noche, y con unos tiempos de espera típicamente muy inferiores al segundo.
El algoritmo que utiliza para valorar las webs que indexa se llama PageRank, y es tan secreto como la fórmula de la Coca-Cola, aunque a diferencia de esta, el PageRank se va ajustando continuamente para prestar un mejor servicio. El funcionamiento de PageRank a grosso modo consiste en considerar los enlaces entre páginas webs como votos. De tal manera que una web que está enlazada desde muchos sitios es una web importante. Además, si las webs que te enlazan son webs importantes, sus enlaces tienen mayor peso.
Así PageRank no considera conceptos comerciales para ordenar los contenidos. Pero Google vive de la publicidad, mostrando con cada búsqueda (pero convenientemente diferenciados) anuncios (de pago) que pueden interesar al usuario.
En Google han conseguido defenderse con mucha eficacia de los sucios trucos que utilizan algunos webmasters para intentar colocar su web en mejores posiciones de los buscadores. Pero aún así, con Google se pueden hacer cosas curiosas como Google bombing. Sólo hay que buscar ladrones para ver un buen ejemplo de Google Bombing. Pero aún en estos casos, que manipulan los resultados de Google, no creo que Google esté errando. Más bien está reflejando el sentir de los usuarios de la red.
Google confía en hardware barato para construir una gran infraestructura que es vital para su negocio. Google utiliza vulgares PCs (con uno o dos procesadores) sin marca, según ellos, en rack (apilables). Utilizar hardware barato hace que puedan ir comprando nuevos equipos a medida que prosperan. Han encontrado una solución completamente escalable, en la que no retiran las máquinas viejas, símplemente añaden nuevas.
Utilizar máquinas cutres tiene ventajas (económicas) pero también tiene inconvenientes, el primero es la fiabilidad. Se supone que un PC al menos se avería una vez en los tres primeros años de funcionamiento, lo que tal vez no sea demasiado importante en un hogar pero sí que lo es en Google, dónde en cada cluster se les funden un par de máquinas cada día. Así, los fallos de hardware son algo corriente que resuelven con el software. Ahí está la magia, tienen muy claro que continuamente el hardware se estropea, pero aún así ellos siguen funcionando. Evidentemente lo que hacen es replicar la misma información en varias máquinas, según Urs, de cada máquina puede haber hasta 50 copias. Cuando una falla las demás asumen la carga de trabajo, así el sistema degrada su rendimiento pero no deja de funcionar.
La redundancia en Google no sólo aporta seguridad, sinó también rendimiento. Cada PC alcanza unos 2Mbps procesando información, todos juntos en un claster soportan los brutales 2Gbps mantenidos. Evidentemente son expertos en hacer un correcto balanceo de carga entre las máquinas para evitar que estas se saturen.
Otra perla tecnológica de Google es el Google File System (o sistemas de archivos de Google), en adelante GFS. Está pensado para compartir ingentes cantidades de información soportando que en cualquier momento cualquier disco duro deja de funcionar. GFS utiliza un tamaño de bloque de 64MB frente a los 2KB o 4KB típicos de los sistemas de archivos tradicionales en un ordenador de escritorio. Además tiene una capa de comprobación extra. Normalmente el hardware de almacenamiento tiene una tasa de error de 10-15. Pero cuando se guardan las ingentes cantidades de información que utiliza Google esta tasa no es tan pequeña, ni mucho menos despreciable, y hay que tenerla en cuenta.
Otra curiosidad es la densidad de consumo de la arquitectura x86. Hölze se queja de que los 500W per square foot que alcanzan son una barbaridad. En el artículo que enlazo no lo cuenta, pero en otro que leí por algún lado explicaba como encima de los racks tenian instaladas campanas con su correspondiente chimenea para extraer el calor.
Google es sorprendente por muchas razones. ¿Cuál es tu razón favorita?