¿Por qué los grandes del Social Media prefieren usar Cassandra?

¿Habéis escuchado las palabras NoSql, Cassandra o BigTable?

Parece que en el panorama tecnológico siempre necesitamos algún término que nos cause sensación de novedad, de avance revolucionario. ¿Os acordáis cuando AJAX era aquello que iba a cambiar internet? Era mencionado al lado de la palabra WEB2.0 como si fuera su sinómino e incluso, se le confundía como una nueva tecnología o un framework de desarrollo. Pues bien, este post viene a arrojar algo de luz sobre las “nuevas” bases de datos no relacionales y en qué sentido les podemos sacar provecho.

La pregunta que nos hacemos es qué nos aportan estos nuevos gestores de base de datos que no nos aporte el modelo convencional, y la respuesta se encuentra en el origen de los mismos. Es lógico suponer que aplicaciones como el buscador de Google o el propio Facebook tienen que procesar una alta cantidad de información. Supongamos que la cantidad es tal que haya llegado a superar los límites de las base de datos relacionales… ¿Qué haríamos si fuésemos el responsable de los equipos de Google o Facebook? La respuesta es implementar nuestro propio gestor de base de datos.

Así fue como se originó Cassandra, un proyecto del equipo de ingenerios de Facebook que posteriormente han abierto con licencia open source y colocado dentro de la incubadora de los proyectos de Apache. Lo mismo ha hecho Google, pero a diferencia de Facebook no ha sido tan considerado con la comunidad de desarrolladores que sustenta el software libre. No ha liberado su implementación, únicamente ha dado a conocer su modelo de datos: BigTable.

¿A caso esto significa que se vaya a producir una revolución en el mercado que eche abajo la hegemonía de Oracle y deje en el recuerdo bases de datos como PostgreSql o MySQL? Pues la verdad es que algo así está muy lejos de la realidad. El modelo de datos tradicional está muy asimilado en estos días y además es la respuesta ideal en millones de aplicaciones que no van cambiar un modelo que funciona, por otro que no les vaya a aportar un claro beneficio.

Comparemos pues que aportaciones tienen las NoSQL en cuanto al modelo tradicional (tomaremos como referencia Cassandra por ser el que actualmente están usando Twitter, Digg, Facebook y Rackspace) y cuáles son sus beneficios:

• Solución en cluster enfocada a la escalabilidad.
• Tolerancia a fallos, cualquier nodo del cluster puede ser fácilmente sustituido.
• Descentralización de datos.
• Una comparación en tiempos de lectura y escritura de cientos de veces inferior, en pruebas realizadas con un alto volumen de datos.
• Sencillo modelo de datos similar a una hash table.

Ahora es el momento de los inconvenientes, y es que para tanta rápidez y redundancia de datos algún precio hay que pagar. Para ganar rapidez y redundancia de datos con CAP theorem (en pro de la mencionada tolerancia a fallos y la escabilidad) necesitas perder en consistencia.

Y sí, es posible que dos usuarios que consulten la misma información en un determinado momento obtengan resultados distintos (alguno de ellos obsoletos), pero esto puede carecer de importancia si el caso consiste en que un usuario no podrá ver el tweet de un amigo hasta el próximo acceso. Además, Cassandra deja que tú mismo escojas el grado en el que comprometes la consistencia a pro de la rapidez. Así pues, dependiendo de las connotaciones del problema a resolver variará el grado de exigencia en la consistencia de los datos y se llegará a un compromiso.

Lo sensanto es pensar que si una base de datos relacional es suficiente para la persistencia de datos en tu sistema, no la cambies. Incluso si encuentras problemas o cuellos de botella en el acceso a base de datos piensa primero en optimizar consultas, desnormalizar y adaptar el modelo. Si después de esto el gran volumen de datos sigue haciendo que tu gestor de base de datos no responda en los tiempos esperados, entonces habrá llegado el momento usar las NoSql. Ahora bien, por nuestra experiencia, en Betybyte creemos que en aquellos proyectos donde algún componente requiera de una base de datos como Cassandra, la solución pasa por compaginar ambas bases de datos y así disfrutar de todos los beneficios que aporta cada modelo .

government,politics news,politics news,politics

Tags: , , , , , ,

Viernes, 30 de abril de 2010 Contenidos, Desarrollo, Diseño, Noticias, Redes sociales, Usabilidad

1 comentario en ¿Por qué los grandes del Social Media prefieren usar Cassandra?

Adrian
18 julio 2010

Que buen post! Enhorabuena!

Saludos!

Dejar un comentario

 

Enlaces relacionados

  • BetyByte TV
  • Visita nuestro flickr
  • Will you follow us?
  • ZNuestro libro de caras

 

abril 2010
L M X J V S D
« Mar   May »
 1234
567891011
12131415161718
19202122232425
2627282930  
This lines have been introduced to help with SEO ratings

Ideas a toda pantalla

¿Por qué los grandes del Social Media prefieren usar Cassandra?