Bases de datos open source ¿La hora de Cassandra?

28 Abr 2010 en Software

Apache Cassandra es la base de datos NoSQL que, en sus inicios, fue desarrollada por Facebook. Hoy la utilizan otros grandes usuarios como Twitter y Digg, aunque también se quiere ir hacia los ambientes empresarios. Ahora que Oracle adquirió a la base de datos open source líder, MySQL, los esfuerzos para impulsar a Cassandra se han redoblado.
De hecho, acaba de aparecer una primer empresa ofreciendo soporte comercial para Cassandra. Se trata de Riptano, que además está creando herramientas para usar sobre el core de Cassandra.
Riptano es apoyada con capital de Rackspace, la empresa a la que pertenecieron sus fundadores.
Cassandra es una base de datos sumamente escalable y la escalabilidad es el mantra que se escucha ya no sólo en empresas Web 2.0. La empresa está comenzando a ser terreno propicio para sus propiedades.
El plan de Riptano consiste en usar a Cassandra como plataforma central e ir agregándole porciones propietarias que hagan a su versión comercial. Uno de sus primeros servicios podría ser el de migración para que usuarios de otras bases de datos puedan pasar su información a Cassandra. Riptano agregará software propietario de administración, pero sin dejar de contribuir al proyecto open source.
Cassandra se encuentra actualmente en su release 0.6, liberado a principios de este mes y ya se trabaja en el 0.7. El proyecto Apache Cassandra lanza un nuevo release cada tres a cuatro meses. Entre los elementos clave de Cassandra 0.7 está el soporte a un índice secundario. Por ejemplo, en la búsqueda por filas de las bases de datos, se arranca de una clave de fila conocida, pero no se puede, por ejemplo, buscar a todos los usuarios que nacieron en un determinado año, sin tener que manipular un índice a nivel de aplicación para tener esa información. Un índice secundario como el que soportará Cassandra, facilitará esa clase de búsquedas.
Cassandra fue creada para manejar grandes volúmenes de datos distribuidos en numerosos servidores estándar, ofreciendo alta disponibilidad sin ningún punto único de falla. Tiene un almacén de valores de claves manejado con consistencia eventual (modelo de consistencia usado en programación paralela). Las claves mapean hacia múltiples valores que se agrupan en familias de columnas. Esas familias se definen cuando se crea una base Cassandra, pero luego se les puede agregar columnas a las diferentes familias. Las columnas se pueden agregar a claves específicas y así diferentes claves tendrán diferentes cantidades de columnas dentro de una misma familia. Los valores de una familia de columnas para cada clave se almacenan juntos, haciendo de Cassandra un híbrido entre una DBMS orientada a columnas y un almacén de datos orientado a filas.
Cassandra fue desarrollada por Facebook para impulsar su dispositivo Inbox Search.
Trabajaron Avinash Lakshman (uno de los autores de Dynamo de Amazon) y Prashant Malik, ingeniero de Facebook. Fue liberada como proyecto open source en julio 2008 en código Google y en marzo de 2009 se convirtió en un proyecto de Apache Incubator.  En febrero de este año, pasó a ser un proyecto de primer nivel.