NewSQL

Bases de datos hay muchas, y formas de almacenar datos hay ilimitadas. Pero sistemas de bases de datos que cumplan el estándar SQL99 no hay tantas, y menos si hablamos de las versiones posteriores. Pero últimamente se está hablando mucho de qué sistemas de bases de datos usan servicios como Google, Facebook, twitter… se habla de las bases de datos NoSQL (que personalmente, al no ser relacionales, para mi no son bases de datos completas) y de una nueva era de bases de datos llamadas NewSQL, muchas de ellas compatibles con MySQL.

Sin duda un primer tema al que hay que darle una ojeada a el al de la integridad relacional. Formatos como MyISAM no son precisamente los mejores para almacenar datos, ya que si algo falla, ahí se queda. InnoDB es un buen formato que viene con el propio MySQL y el formato MEMORY es muy decente para almacenar datos en memoria con un acceso temporal (por ejemplo sesiones de usuario o información pre cargada).

La peor situación en cualquier caso es cuando tienes que manejar una cantidad muy elevada de datos, millones de filas. Sin duda las últimas versiones de MySQL están haciendo los deberes, sobre todo con la versión 5.5 y la futura versión 5.6. En estos casos hablamos de la MySQL Community Server. Aunque desde hace un tiempo también tenemos otra posibilidad, la MySQL Cluster que pretende solventar los problemas que existen al tener toda la información en una máquina, separándola en cluster; aunque para ello hay que tener un sistema de clustering como pudiera ser Hadoop.

Aun así, no cabe duda que para escalar a esos niveles podríamos plantear una mezcla de Hadoop + HDFS + Cassandra que es lo que Facebook estaría usando parcialmente.

Pero volvamos a los nuevos sistemas de bases de datos, los llamados NewSQL. Yo personalmente me quedo con MariaDB que está creado por la misma gente de MySQL y que básicamente lo único que hay que hacer es sustituir el software, ya que los ficheros de datos son compatibles.

El NewSQL es la forma de llamar a lo que se podría considerar un ScalableSQL, es decir, es la forma de llamar a una nueva generación de bases de datos que están pensadas para ser escalables y/o tener un alto rendimiento y alta disponibilidad. Algunas de estas bases de datos son estas:

Akiban, Amazon Relational Database Service, Clustrix, CodeFutures, Database.com, Drizzle, FathomDB, GenieDB, JustOne DB, Microsoft SQL Azure, MySQL Cluster with NDB, MySQL with HandlerSocket, NimbusDB, RethinkDB, ScalArc, ScaleBase, ScaleDB, Schooner, Tokutek, VoltDB, Xeround…

La lista es larga, cada una de ellas hace una cosa distinta aunque similar y se gestionan de una forma que en algunos casos es muy sencilla y en otras más compleja. Así que sin duda, si vas a comenzar un proyecto en el que necesites escalabilidad, sobre todo al hacer una estrategia internacional, deberías plantearte alguno de estos servicios y plataformas para solventar lo que te puede deparar el futuro.

Categorías Javier, SQL

4 comentarios en “NewSQL”

  1. Yo alucino con la cantidad de proyectos web y CMS’s serios que todavía trabajan con MyIsam con la escusa de que es más rápida que Innodb y por tanto pasan de integridad referencial.

Deja un comentario