martes, 2 de marzo de 2010

Twitter migrará de MySQL a Cassandra

Leo en Kushelmex la siguiente noticia

"Ryan King es ingeniero de Twitter y le dijo al blog MyNoSQL que están planeando cambiar su bases de datos en MySQL por una base de datos Cassandra debido a la escalabilidad y a la gran comunidad de desarrolladores .

Actualmente Twitter funciona en un cluster de servidores MySQL con un sistema de cache que cada vez es menos efectivo debido a su crecimiento. Necesitan un sistema para crecer de forma mas automática y de alta disponibilidad (¿no mas fail wail?).

El crecimiento en el numero de tweets en comparación al año pasado ha sido de 20 veces subiendo de 2 millones al día a 50 millones por día en enero de este año.

La idea de cambiar de base datos también lleva de la mano el disminuir el downtime que en los últimos 12 meses sumo 23 horas con 45 minutos (por los 12 meses). En comparación al 2008 el downtime llego a 84 horas convirtiéndose en un récord negativo en comparación a otras redes sociales.

Cassandra fue desarrollado en un principio por los de Facebook y es un repositorio hecho en Java, la tecnología es similar a la ofrecida por otras bases de datos NoSQL como MapReduce y Hadoop.

Otro que esta dejando las bases de datos MySQL es Digg que también estara migrando a Cassandra. Estas bases de datos también son utilizadas por Cisco Systems, Rackspace e IBM.

Actualmente Twitter esta migrando su tabla mas grande que es la de status donde se almacenan los tweets y retweets de todos los usuarios, para evitar problemas estarán implementando nuevos recursos sobre ambas bases de datos para no caer en imprevistos. Cuando ya no encuentren bugs exportaran la BD y la importaran de lleno en Cassandra.

Todos los cambios se están realizando en ambientes de prueba , hasta que no encuentren mas fallas podrán poner la BD Cassandra en producción."



Hace algún tiempo (http://rafinguer.blogspot.com/2009/11/movimiento-nosql-la-alternativa-las.html) analicé la tendencia de las bases de datos NoSQL, como una alternativa a las bases de datos relacionales, debido a su potencia y escalabilidad en grandes sistemas, especialmente los que requieren sites populares de internet, tales como Amazon, Facebook, etc.