domingo, 23 de enero de 2011

NoSQL: El fin de las Bases de Datos relacionales?

El primer día del curso de J2EE el profe nos dijo que a las Bases de Datos le quedaban 10 años de vida y la idea me entusiasmó.

Y cuanto más pienso en ello, más sentido le encuentro.

Para extraer datos de la BD tenemos que hacer un acceso a un repositorio externo, algo ajeno a nuestra aplicación.

Además tienen un lenguaje propio, el SQL, que nos obliga a tratar nuestros objetos de una manera poco lógica e intuitiva. Se pierde mucho tiempo en lograr queries de bajo coste, a veces sacrificando un código limpio y sencillo.

Cuánto podríamos mejorar el rendimiento de nuestra aplicación si tuviéramos los datos más accesibles?

He buscado información al respecto y encontré lo que llaman NoSQL.

Amazon creó su propia base de datos NoSQL, de código cerrado, y de uso exclusivo: Amazon Dynamo. Fue en octubre de 2007 cuando se publicó un paper con el diseño y la especificación a grandes rasgos de Dynamo, rompiendo con conceptos como la consistencia o modelo relacional. Su objetivo se definió claramente: escalabilidad y disponibilidad.

Garantizan en el 99.9% de los accesos, un tiempo de respuesta menor de 300ms, aunque el servicio esté caído.

http://www.nosql.es/blog/nosql/amazon-dynamo.html

Google empezó el desarrollo de BigTable en 2004, un almacen de datos masivo, para proveer a sus propias aplicaciones. Cuenta con una API de uso público, por lo que cualquier desarrollador puede trabajar con él.

Uno de los clusters más grande de BigTable gestiona 6 petabytes de datos sobre miles de servidores.

http://labs.google.com/papers/bigtable.html

El proyecto Cassandra de Apache desarrolla una base de datos distribuida de segunda generación altamente escalable.

Está en uso en Digg, Facebook, Twitter, Reddit, Rackspace, Cloudkick, Cisco, SimpleGEO, Ooyala, OpenX, etc.

Según escribe Avinash Lakshaman, ingeniero de Facebook, Cassandra puede escribir hasta 50GB de datos en disco en tan solo 0.12ms, más de 2500 veces más rápido que MySQL.

http://cassandra.apache.org/

Adobe utiliza Hbase, porque según ellos necesitan un sistema de almacenamiento de datos estructurado, genérico, y a tiempo real, que pueda manejar cualquier volumen de datos, con tiempos de acceso menores a 50ms, sin pérdida de datos.


http://hstack.org/why-were-using-hbase-part-1/

http://hstack.org/why-were-using-hbase-part-2/

Hay más proyectos en marcha: Hadoop, Voldemort, Dynomite, etc.

Dejo unos cuantos links que me han parecido interesantes.


NoSQL: el movimiento en contra de las bases de datos
1 billion reasons why adobe chose HBase
Google BigTable blog NoSql
The Database tea party: The NoSQL Movement
NoSQL debrief

No hay comentarios:

Publicar un comentario