Amoeba

You are currently browsing articles tagged Amoeba.

Amazon ha publicado un documento detallando su proyecto de almacenamiento distribuido llamado Dynamo.

Dynamo no es un sistema operativo completo, es una interesante solución para resolver el problema de la alta disponibilidad y tolerancia a fallos de las bases de datos online. En el último año Dynamo ha estado en el backend de sus sistemas web, incluido el carro de la compra, las preferencias de los usuarios y el catálogo de productos. También ha sido usado para S3, el sistema de almacenamiento remoto via web de Amazon.

Dynamo funciona sobre un cluster de cientos de PCs con Linux conectados a una red interna. El sistema no está diseñado para exponerse a Internet, por lo que han sacrificado la seguridad en pro de el rendimiento y la alta disponibilidad. Segun los autores del documento los clientes de Amazon deberían ser capaces de ver y añadir elementos a la cesta de la compra incluso si los discos o las redes fallan, o el datacenter es destruido por un tornado.

La filosofia de Dynamo es que la alta disponibilidad es siempre la prioridad del servicio, la cesta de la compra debe estar siempre disponible para que los usuarios puedan añadir y borrar productos. Para conseguir esto Dynamo usa técnicas llamadas “replicación optimista”, de copia de datos a muchos servidores asegurando que todas las réplicas son actualizadas con los correctamente usando técnicas de “resolución de conflictos” para asegurar la consistencia de los datos.

Amazon

La idea de un sistema operativo distribuido ha sido valorada en ámbitos académicos desde hace mucho tiempo. El mismo Andrew Tanenbaum, que criticó a Linus Torvalds que su sistema operativo “estaba obsoleto” antes de que lo acabara, estaba creado desde 1.985 un sistema operativo llamado Amoeba que funcionaba en un cluster de las entonces nuevas máquinas 386. La idea era tener todas las opciones de un sistema operativo estandar pero abstrayendo las operaciones (incluida la ejecución de programas, acceso a memoria y escrituras a disco) sobre tantos PCs como fuera posible, presentando al usuario el cluster como una sola máquina. Era un proyecto realmente interesante pero que nunca respondió a una necesidad comercial y su desarrollo se abandonó en el 2.001. El futuro de los cluster quedó en manos de ideas menos complejas, como los cluster de estilo Beowulf.

Recientemente las empresas de Internet más grandes, como Google, han vuelto a dar importancia a estos cluster y han desarrollado su propia infraestructura, vital para la cantidad de espacio en disco que ofrecen sus servicios. Los cientos de servidores (PCs con Linux) de Google usan un sistema operativo llamado GoogleOS, con su propio sistema de archivos distribuidos llamado GFS. Amazon también ha desarrollado su propio sistema de archivos para Dynamo. Para optimizar su rendimiento muchas de las pequeñas transacciones usan lightweight Berkeley Database (BDB) y otras usan MySQL.

El artículo al que hago refenrecia está escrito por Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, y Werner Vogels, y será presentado este mes en el SOSP (The ACM Symposium on Operating Systems Principles)

Traducción libre de un artículo de Jeremy Reimer de ArsTehcnica: Amazon reveals its distributed storage “Dynamo”.