Open Source y NoSQL

Ya he escrito en julio de 2009 sobre los novísimos sistemas de almacenamiento no relacional y el paradigmaNoSQL, pero me parece interesante volver sobre el asunto desde la perspectiva del Software Libre.

Resulta que las redes sociales le han dado a pensar a los desarrolladores que un sistema gestor de base de datos relacional (SGBDR) no es la infraestructura óptima para un sitio web con decenas de millones de usuarios registrados. Además, los servicios más importantes han liberado sus sistemas de almacenamiento no relacional. De LinkedIn salió Voldemort, Facebook donó Cassandra a la Apache Software Foundation, VMWare esponsoriza Redis(usado por Craigslist), en 2009 Baidu se convirtió en sponsor de Hypertable y se sospecha que HBase, la base de datos que corre sobre el framework Hadoop extensamente usado por Yahoo!, también se usa en Bing tras la compra de Powerset por parte de Microsoft en 2008.

Vale la pena señalar que en los sistemas de almacenamiento no relacional los substitutivos al Software Libre no son sistemas privativos sino software como servicio. La competencia del software de Apache no es mayormente software de Microsoft u Oracle (aunque tengan el veterano BerkelyDB) sino Amazon Dynamo como parte de S3 o la implementación de BigTable disponible en Google App Engine.

Lo más probable es que los usuarios de almacenamiento no relacional se dividan en dos grupos, los de software Open Source y los de software como servicio.

Una buena porción de la tarta Open Source se la llevará Apache con CassandraCouchDBHBaseJackrabbit.

Habrá también proveedores independientes como mongoDB de 10gen o Tokyo Cabinet, con unas pocas funcionalidades estrella o especialmente adaptados a algún lenguaje de programación como Ruby o PHP, pero yo dudo que vaya a haber un próximo producto estrella como MySQL o JBoss fuera de Apache que domine el nicho de sistemas almacenamiento no relacional Open Source.

Otra fracción importe de los desarrolladores se convertirán en usuarios de los sistemas de almacenamiento como servicio de Amazon, Google, Azure, o cualquier otro. Incluso algunas de las ofertas de almacenamiento como servicio estarán basadas en Software Libre.

Lo importante es la creación de un API estándar como SQL. Si apareciera un API estándar para almacenamiento no relacional con soporte para ACID, bloqueos, y replicación, entonces sería posible escribir una aplicación para que corriese en cualquier infraestructura y así eliminar el vendor lock-in que produce el uso de las soluciones de almacenamiento como servicio. A falta de un estándar yo recomendaría a cada desarrollador que antes de basar su solución an Google App Engine o Amazon S3 o Azure o lo que sea, al menos escriba un wrapperque permita cambiar el proveedor de infraestructura en caso de que ello fuere conveniente o necesario.

También habrá un hype de moda dentro de poco, que pronto pasará. Los sistemas de almacenamiento clave/valor tampoco son la solución perfecta. En realidad son una simplificación extrema de los sistemas gestores de bases de datos relacionales surgida para solucionar los problemas de rendimiento y escalabilidad de sitios web con centenares de millones de usuarios. Los sistemas NoSQL casi siempre se usan en combinación con caches comomemcachedJBoss Cache, con bases de datos relacionales como MySQL y con indexadores como Lucene. Y defensores a ultranza del modelo relacional tampoco faltan. Los hay que argumentan que una base de datos relacional paralela es superior en todos los aspectos a un sistema de clave/valor o que simplemente la mayoría de ellos no escalan como deberían, o incluso que están impacientes por ver morir el movimiento.

El precio de la memoria RAM y la evolución hacia las nuevas tecnologías DDR3DDR4 también será un factor determinante en la evolución de las arquitecturas. Con el precio actual de ~35€ por Gigabyte de memoria DDR2 se puede almacenar una base de datos de 96Gb enteramente en RAM por poco más de 3.000€. Aunque dicho precio es aún 10 veces superior de lo que cuesta la misma cantidad de espacio en disco, empieza a ser económicamente viable para muchos sitios web manejar una gran parte de su información no-multimedia en RAM utilizando la base de datos sólo como copia de respaldo ante caídas.

Mark Zuckerberg donará $100M a educación pública en EEUU



El CEO y fundador de Facebook Mark Zuckerberg donará 100 millones de dólares para las escuelas públicas en los EE.UU., y se le informó que se anunciará la donación el viernes en el show de Oprah Winfrey.

La donación será la primera parte de una fundación que Zuckerberg está creando para mejorar la educación en los EE.UU, y la primera donación 100 millones de dólares se va aNewark.

Mark Zuckerberg fue elegido recientemente como una de las persona más rica del mundo con una fortuna estimada en alrededor de 6,9 mil millones dólares, lo que lo pondría por delante del consejero y delegado de Apple Steve Jobs.

Mucha gente llamará a la donación un movimiento calculado, ya que se dará a conocer el mismo día que la película “The social Network” es puesta en marcha en los cines americanos, una película que retrata Zuckerberg de una forma poco favorable como les puede pasar a muchos universitarios(todos fuimos jovenes y alguna tonteria seguro que hicimos).

Al final del día, independientemente de sus motivaciones para la donación, sigue siendo una donación increíblemente generoso que ayudará al sistema escolar publico. Enhorabuena por ese apoyo a la educación.

Release del Internet Explorer 9 Beta

Buen día SQLeros, Microsoft, lanzó oficialmente la primera Beta Oficial de Internet Explorer 9 puede ser descargado desde aquí (a las 14:00hs es el evento oficialhttp://beautyoftheweb.com vía webcast)

clip_image001

Microsoft hizo mucho foco en los estándares, HTML 5, la aceleración asistida por GPU, y otras funcionalidades adicionales como la compatibilidad con Windows 7.

Si bien se trata del primer beta, el futuro para este navegador se ve muy promisorio.

Desde el arranque la aplicación es más rápida, así también las diversas demos disponibilizadas en el sitio de el preview.

Al arrancar el navegador por primera vez se sugiere escoger los Addons o complementos que utilizamos, para mejorar la performance como muestra el gráfico inferior:

image

image

La interface nueva aprovecha el efecto Glass disponibles en Windows Vista y Windows 7, asi también la barra de navegación y tabs están mejor distribuídas y consumen menos espacio.

image

La apertura de nuevos Tabs, sugiere sitios populares y la navegación “en privado”

image

También se disponibiliza un Download Manager, algo que mucha falta le hacía a Internet Explorer y que otros navegadores ya lo tenían.

image

La integración con Windows 7, es más que evidente al hacer clic derecho sobre el icono en la barra de aplicaciones

image

Saludos.

Qué es NoSQL?

Originalmente el término NoSQL, que fue acuñado en 1998, se refería a una base de datos relacional de código abierto que no usaba un lenguaje de consultas SQL(Structured Query Language).

Hasta 2009 estas cinco letras cayeron en el olvido, pero fue Johan Oskarsson, entonces empleado de Last.fm, quien organizó un evento para tratar las bases de datos distribuidas de código abierto no relacionales, llamándolas “NOSQL”, Not-Only SQL.

Las características comunes entre todas las implementaciones de bases de datos distribuidas no relacionales, propietarias o no, suelen ser las siguientes:

  • Consistencia Eventual: No se implementan mecanismos rígidos de consistencia como los presentes en las bases de datos relacionales, donde la confirmación de un cambio implica una comunicación del mismo a todos los nodos que lo repliquen. Esta flexibilidad hace que la consistencia se dé,eventualmente, cuando no se hayan modificado los datos durante un periodo de tiempo. Esto se conoce también como BASE (Basically Available Soft-state Eventual Consistency, o coherencia eventual flexible básicamente disponible), en contraposición a ACID, su analogía en las bases de datos relacionales.

  • Estructura distribuida: Generalmente se distribuyen los datos mediante mecanismos de tablas de hash distribuidas (DHT) ya que realmente se trata, según las distintas implementaciones, de redes p2p.

  • Escalabilidad horizontal: La implementación típica se realiza en muchos nodos de capacidad de procesado limitado, en vez de utilizar grandes Mainframes.

  • Tolerancia a fallosRedundancia.


De entre todas las implementaciones de bases de datos NoSQL, hay muchas que no utilizan el lenguaje de consultas SQL (por ejemplo, MongoDB usa JSON), pero hay algunas que siguen usándolo, como por ejemplo BigTable (GQL), que lo ha transformado manteniendo su estructura básica.

Definitivamente, con el término NoSQL nos referimos a una multitud de bases de datos que intentan solventar las limitaciones que el modelo relacional se encuentra en entornos de almacenamiento masivo de datos, y concretamente en las que tiene en el momento de escalar, donde es necesario disponer de servidores muy potentes y de balanceo de carga