Você está na página 1de 7

CASSANDRA-BASES DE DATOS SIN LMITES CASSANDRA-UNLIMITED DATABASES Edilberto Nio Nio* Introduccin.

El modelo de datos Cassandra es simple pero muy flexible, Cada fila se identifica con una clave nica, que es un string que no tiene tamao lmite. Una instancia de Cassandra tiene una tabla que se constituye de una o ms familias de columnas definidas por el usuario. Cada familia de columnas puede contener una o dos estructuras: supercolumnas o columnas[2]. Esta base de datos tal vez nace debido el espritu capitalista impulsa fuertemente el desarrollo de nuevas tecnologas, a fin de obtener mayores y mejores dividendos, lo cual es racional en una sociedad vida de explorar nuevos pasatiempos y sobre todo dependiente de las tecnologas al servicio del ocio. Es precisamente las exigencias del ocio lo que atrae grandes masas de consumidores y all donde se captan los abultados recursos y lo que llev a grandes empresarios a pensar en una nueva solucin para el manejo masivo de millones de datos. Cassandra se presenta como una solucin a los problemas de escalabilidad que presentan las estructuras de bases de datos tradicionales. Y se augura un futuro prometedor ya que abord una de las tendencias actuales en bases de datos como son las llamadas "bases de datos del tipo BigTable".

Resumen. El modelo de datos Cassandra est diseado para los datos distribuidos en una escala muy grande. No pretende reemplazar las tradicionales del tipo relacional, sino complementarlas en aplicaciones distintas para las cuales el modelo clsico simplemente se quedo rezagado. Esta base de datos, promete grandes ventajas como por ejemplo alta eficiencia en tolerante a fallos, ya que los datos se replican de forma automtica en distintos nodos, o incluso en
Hoja 1

distintos centros de datos, es una base de datos 100% descentralizada ya que cada nodo del cluster de datos es idntico a otros y se evitan cuellos de botella, y se espera que se altamente consistente.

Palabras Clave: Cassandra, Base de Datos, nodos, Clusters, replicacin, escalabilidad, consistencia, distribuida.

Abstract. Cassandra data model is designed for distributed data on a large scale. Not intended to replace traditional relational type, but to complement them in different applications for which the classical model simply fell behind. This database, it promises great advantages such as high efficiency in fault-tolerant, since the data is automatically replicated on different nodes, or even in different data centers, a database is 100% decentralized and each data node cluster is identical to others and avoid bottlenecks, and is expected to be highly consistent.

Keywords: Cassandra, Database, nodes, clusters, replication, scalability, consistency, distributed

1. Que es Cassandra. Es el nombre dado a un proyecto, generado por los ingenieros del portal social Facebook y mantenido por la fundacin Apache, es el sistema de bases datos diseada para escalar "naturalmente", es el ms sofisticado del momento. La empresa Twitter anuncio recientemente que migrar toda su infraestructura a esta nueva plataforma de datos, adicionalmente otras empresas como Cisco apoyaran el proyecto.

2.

Caractersticas generales de Cassandra.


Hoja 2

Respecto a la infraestructura ya existen instalaciones con ms de 150 mquinas en paralelo y 100TB de datos en produccin, lo que permitir atender de manera eficiente a los millones de usuarios que tendr este sistema. Algunas de las caractersticas relevantes que hacen de esta base de datos una de las mejores son:

Tolerante a fallos, ya que los datos se replican de forma automtica en distintos nodos, o incluso en distintos centros de datos. Descentralizada, ya que cada nodo del cluster de datos es idntico a otros y se evitan cuellos de botella. Eventualmente consistente. Modelo de datos robustos, ms all del mero par de clave/valor. Elstica, ya que el rendimiento de lectura y escritura crece linealmente al ir aadiendo mquinas. Alta disponibilidad. Como ya se mencion es una base de datos diseada para que escale "naturalmente" es decir basta con que se agreguen mquinas para que sta se escale de manera lineal, y lo ms importante todo se prev que se har de una manera sencilla. El diseo para le gestin de los datos en la base Cassandra, no es un sistema centralizado, ni gestionado de manera centralizada, es decir la gestin de los datos se realizar de manera distribuida entre todos los nodos, lo que significa que no existe un slo punto de fallas en el sistema, ya que aun si se caen varios de los servidores del sistema, los otros continuarn operando. Se espera adems que con los datos altamente distribuidos entre centenares de mquinas, el sistema pueda escalar en tiempo real sin generar un flujo masivo de trfico en el proceso, por que el usuario puede manejar las especificaciones de las consultas en todo el clster, desde simples lecturas sin bloqueo, hasta bloquear todos los nodos, mientras realiza
Hoja 3

escritura. Adicionalmente al estar las Bases de Datos distribuidas en toda la red, permitir una alta transparencia para el usuario[1]. El diseo tambin soporta replicacin no slo local en una red, sino que entre varios centros de datos remotos, todo de manera natural. Se cuenta tambin como ya se dijo con alta escalabilidad, y para escalar cientos de millones de usuarios se debe crear un balance entre disponibilidad de datos, los cuales deben estar siempre disponibles y utilizables en todo momento y en tiempo real, y adicionalmente presenta alta consistencia lo que significa que los cambios se van propagando poco a poco entre todos los nodos del clster, y mientras tanto lo que sea que est disponible para lectura se le ofrece al usuario mientras que lleguen las ltimas actualizaciones, este tipo de modelo es eficiente para aplicaciones donde no se tenga que estar actualizando los datos en todo momento, pero no aplica para las de tipo financiero, las cuales deben confirmarse y estar 100% consistentes en todo momento. El modelo de Cassandra no utiliza el mismo concepto de tablas relacionadas, utiliza un conjuntos de datos basados en modelos de "variable + valor", similar a las hashtables en los lenguajes clsicos de programacin. En las bases de datos del modelo Cassandra, cada fila se identifica con una clave nica, que es un string y que no tiene un tamao lmite. Una instancia de Cassandra tiene una tabla que se constituye de una o ms familias de columnas definidas por el usuario. Cada familia de columnas puede contener una o dos estructuras: supercolumnas o columnas. Las dos se crean de forma dinmica y no hay lmite en cuanto al nmero que pueden ser almacenados en una familia de columnas[3]. Las columnas son construcciones que tienen un nombre, un valor y un timestamp (fecha y hora) asociado a las mismas. Se pueden almacenar tantas columnas como se quieran en una familia de columnas. Por otro lado, las supercolumnas son una construccin que tiene un nombre y un nmero infinito de columnas asociadas a la misma. Los documentos son almacenados en un directorio comn de Red, y al ser accedidos desde Casandra, facilita y ordena el trabajo en grupo. Tiene un poderoso sistema de recuperacin

Hoja 4

Full-Text se recuperan los documentos por cualquier palabra que contenga, que le permite hallar documentos de varias bases de datos en una sola bsqueda [2].

3. Grandes bases de datos estn migrando a Cassandra. En Septiembre de 2009 Digg 1, inicio su migracin desde MySQL a Cassandra [3]. Facebook usa Cassandra porque ellos son los desarrolladores iniciales y lo han desarrollado de acuerdo con sus necesidades, asi se hacia el anlisis de cmo resolver el problema de la bandeja de entrada[3]. El desafo se centraba en cmo almacenar ndices inversos de los mensajes que los usuarios de Facebook envan y reciben entre ellos. La gran cantidad de datos almacenados, su ratio de crecimiento y los requerimientos para servir la informacin, hacan aparente la necesidad de una nueva solucin de almacenamiento, que fuera capaz de escalar incrementalmente [4]. Las soluciones de almacenamiento de datos tradicionales simplemente no encajaban, as que tuvimos que disear una solucin que fuera capaz de resolver el problema de la bandeja de entrada, pero que tambin proporcionaran una infraestructura de almacenamiento para muchos otros problemas de la misma naturaleza. Y con esto naci Cassandra[2]. Twitter migrar a Cassandra, entre otras razones por que maneja gran cantidad de datos, con un factor de crecimiento muy elevado. Twitter trabaja con mysql, el cual se vuelve cada vez ms costoso. Por lo que se requiere un sistema que pueda crecer de una forma ms automatizada y que presente alta disponibilidad. Las razones principales por las que Twitter migra a Cassandra son las siguientes: No tiene puntos de fallo, Las escrituras son altamente escalables y una comunidad open source saludable y productiva[4]. De otra parte adems de sus caractersticas tcnicas, la comunidad es algo muy favorable para Cassandra, porque ya de por s con Facebook, Digg, Twitter y muchas otras empresas

Digg es un sitio web principalmente sobre noticias de ciencia y tecnologa. Combina marcadores sociales, blogging y sindicacin con una organizacin sin jerarquas, con control editorial democrtico, lo cual permite que se publiquen artculos sobre una gran variedad de gneros.

Hoja 5

interesadas en el desarrollo de Cassandra, esto asegura la continuacin y garantiza que a corto o mediano plazo Cassandra ser una solucin eficiente. [2]

Conclusiones 1) La imaginacin del hombre hace que la tecnologa avance, y esta a su vez incentiva a la imaginacin humana, lo que permite el desarrollo vertiginoso de la ciencia de la electrnica y de la informtica. 2) Se advierte sobre la fragilidad de los datos digitales, y la tecnologa se defiende creando bases de datos altamente escalables, y con replicacin eficiente. 3) Las bases de datos relacionales, se quedaran por un tiempo, pero para aplicaciones muy especificas, mientras que las bases de datos con modelo como el de cassandra se prev que se afiancen en un futuro cercano.

Referencias Bibliogrficas:
[1] http://www.eliax.com/index.cfm?post_id=7507. Por Jose Elias. Consultado (10/04/2011). [2] http://www.kabytes.com/programacion/mysql-vs-cassandra/. Consultado (09/04/2011). [3] http://wiki.apache.org/cassandra/DataModel. Consultado (09/04/2011). [4] http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandra. Desarrollado por: Francisco Javier Martnez Pez . Consultado (09/04/2011).

* Autor Edilberto Nio Nio Colombiano, Ingeniero Catastral y Geodesta de la Universidad Distrital Francisco Jos de Caldas, Bogot (Colombia). Especialista en Astronoma, de la Universidad Nacional de Colombia, Bogot (Colombia). Especialista en Sistemas de Informacin Geogrfica, de la

Hoja 6

Universidad Distrital Francisco Jos de Caldas, Bogot (Colombia). Docente tiempo completo de la Universidad Distrital Francisco Jos de Caldas, Bogot (Colombia). edilbertonino@gmail.com

Hoja 7

Você também pode gostar