¿MySQL vs Cassandra?

Estoy siguiendo desde hace tiempo un gran debate que existe entre desarrolladores que apoyan, por un lado el uso de bases de datos relacionales y por el otro los que enaltecen las virtudes de las bases de datos no relacionales (aparace un movimiento bajo el nombre NOSQL), pero que comenzó a tomar más fuerza desde que Facebook lanzó el proyecto Cassandraluego Digg y hace apenas unos días Ryan King aseguro en una entrevista que Twitter seguiría los pasos de estos dos gigantes.

Para el que no tenga ni idea de lo que estoy hablando el asunto es el siguiente (a muy grandes rasgos).

Tenemos por un lado las bases de datos relacionales, estas son las que como su nombre indica guardan relaciones entre sus datos, que son guardados en tablas y logran tener interconexiones entre si.  Este modelo de datos es muy utilizado en la actualidad y es extremadamente robusto, cuantas más relaciones tenemos entre nuestras tablas mejor integridad de datos podemos lograr. Ejemplos de bases de datos relacionales hay varios: PostgreSQL, Oracle y por supuesto MySQL como uno de los mayores referentes.

Bien, las bases de datos relacionales al dar tanta integridad a la información rápidamente fueron copando todos los sistemas, pero el problema principal aparece al momento de comenzar a escalar estos sistemas con un número de transacciones que prácticamente no tiene precedentes, de aquí que aparece un movimiento de desarrolladores (NOSQL: Not Only SQL) que intentan destronar este modelo de datos, por otro más eficiente y económico para manejarlos.

Obviamente como el punto débil de las bases de datos relacionales es el consumo de recursos los principales interesados en reinventar y revolucionar esto son los grandes jugadores de internet, aparece Google con Bigtable, también Amazon con Dynamo y finalmente Facebook con Cassandra (Libre), que como comenté al principio lentamente es seguido en la migración desde Mysql por Digg y próximamente Twitter.

mysql nosqlY la gran pregunta que encierra toda esta serie de movimientos y de migraciones es justamente la que hace Todd Hoff cuando pregunta en un post MySQL and Memcached: End of and era?

Yo opino que no. Creo que MySQL va a seguir existiendo por mucho tiempo más (como el modelo relacional)

Si bien es verdad que las bases de datos relacionales tienen un “costo” mucho más alto y son más difíciles de escalar que una base de datos no relacional la realidad es que cada aplicación es un mundo, si se fijan bien quienes son los impulsores de esta tendencia verán a grandes empresas con billones de transacciones diarias, por lo que su necesidad es completamente distinta a la de cualquier otro mortal.

Lo que veremos muy probablemente dentro de un tiempo es una nueva moda en que los desarrolladores optan por el nuevo modelo de bases de datos no-relacional, por más que sus requerimientos sean básicos y mínimos, eso no es malo, pero en lo personal no cambiaría la integridad referencial por solo estar a la moda 😀

Más allá de todo el debate, que a medida que pasen los meses se va a poner mas y mas interesante, creo que el evaluar nuestras necesidades y elegir la solución en base a ellas siempre va a darnos la respuesta correcta.

Categorizado en: