Buscando en los papers de Google Labs, encontré este interesante PDF titulado "The Google File System", aunque el documento data del 2003, tiene muy importante información sobre cómo Google ha diseñado un sistema de archivos a medida (GFS) basado en un clusters de máquinas de bajo costo, que garantice un alta disponibilidad y confiabilidad. Para ello han tomado ciertos criterios de diseño que pueden no ser generalmente aplicables a todo tipo datos, pero que sin duda son parte de su éxito como buscador los servicios que ofrece cómo Gmail, Google Docs, etc.
El documento esta en inglés, pero me ha parecido tan interesante que planeo traducirlo, son 15 páginas, asumo que la traducción completa me tomará como un mes, pues no dispongo de todo el día para dedicarlo a ello, pero si alguien se anima a darme una mano, pues es bienvenida, así a lo mejor esta listo antes.
Por lo pronto aquí la traducción del resumen ("abstract") del documento:
Nosotros hemos diseñado e implementado el Google File System, un sistema de archivos distribuido y escalable para aplicaciones distribuidas que accesen intensivamente a los datos. Éste provee tolerancia a fallos mientras mientras corre sobre computadoras de bajo costo, y es capaz de generar un alto rendimiento a un gran número de clientes.
Mientras compartimos muchos de los objetivos de otros sistemas de archivos distribuidos, nuestro diseño se basa en criterios obtenidos de la observación del flujo de datos de nuestras aplicaciones y el entorno tecnológico, tanto el actual como el futuro, que refleja un marcado alejamiento de algunas suposiciones iniciales de sistemas de archivos. Esto nos ha llevado a reexaminar las opciones tradicionales para el diseño de sistemas de archivos y explorar nuevos puntos de vista radicalmente diferentes.
El sistema de archivos ha cumplido exitosamente nuestras necesidades de almacenamiento. Y es ampliamente usado en Google como la plataforma de almacenamiento para la generación y procesamiento de datos, usados por nuestros servicios así cómo también en nuestros trabajo de investigación y desarrollo que requiere grandes conjuntos de datos. El cluster más grande a la fecha provee cientos de terabytes de almacenamiento a través de miles de discos en un número equivalente de computadoras, y es accesado simultáneamente por cientos de cliente.
En este documento presentaremos los alcances del diseño del sistema de archivos para soportar aplicaciones distribuidas, discutiendo muchos de los aspectos de nuestro diseño y mostraremos reportes de nuestras mediciones tanto de micro-benchmark (pruebas de laboratorio) como su uso en el mundo real.