Google libera LevelDB con licencia BSD


A pesar de que el código ya está disponible hace casi dos meses, en un post reciente de Google se da más detalles sobre este proyecto.

LevelDB

En mayo pasado Google liberó una biblioteca de base de datos inspirada en BigTable denominada LevelDB, la cual cuenta con licencia BSD. Fue creado por Jeff Dean y Sanjay Ghemawat. Está disponible para sistemas Unix, MacOSX, Windows y Android.

LevelDB no está basado en cliente/servidor, sino que está orientado para integrarlas a aplicaciones de la misma forma que lo hacen SQLite o BerkleyDB. La ventaja técnica de utilizar LevelDB, es el soporte de datos ordenados basados en pares key-value. También, su licencia BSD ofrece más libertad que la licencia GPL de Berkley DB.

De acuerdo al anuncio:

Por ejemplo, LevelDB puede ser utilizado por un navegador web para almacenar la caché de las páginas recientemente visitadas, o por un sistema operativo para almacenar la lista de los paquetes instalados y sus dependencias, o por una aplicación para almacenar las preferencias del usuario. Hemos diseñado LevelDB para también ser útiles como un bloque de construcción para sistemas de almacenamiento de alto nivel. En las próximas versiones del navegador web Chrome se incluye LevelDB para implementar la API HTML5 en la característica IndexedDB. BigTable de Google administra millones de tabletas cuyo contenido de una tableta en particular está representada por un precursor de LevelDB.

LevelDB no está limitado a ser únicamente una base de datos integrable. Basho está actualmente explorando la posibilidad de utilizar LevelDB con Riak como una alternativa a Bitcask o InnoDB. La compañía realizó algunas pruebas exhaustivas, las cuales pueden verlas en su blog.

Google también publicó sus propios resultados aquí.

De acuerdo al sitio del proyecto, algunas de sus características son:

  • Los datos se almacenan ordenados por clave.
  • Las operaciones básicas son Put(key, value), Get(key), Delete(key).
  • Pueden realizarse cambios múltiples en un sólo lote atómico.
  • Los usuarios pueden crear una captura para obtener una vista de datos consistentes.
  • El recorrido hacia atrás o adelante está soportado sobre los datos.
  • Los datos son automáticamente comprimidos.

Y las limitaciones son:

  • No es una base de datos SQL. No tiene un modelo relacional de datos, no soporta consultas SQL, y tampoco tiene soporte de índices.
  • Un sólo proceso únicamente  (posiblemente multihilo), puede accederse a una base de datos por turno.
  • No tiene soporte de cliente/servidor en la biblioteca. Las aplicaciones que lo requieran pueden crear sus propios clientes/servidor que lo integre.

Para más información visite el Proyecto LevelDB

Fuente: Google Open-Sources NoSQL Database Called LevelDB