Relayé par Romain de WebActus sur son compte Twitter et rédigé par Read Write Web, et plus particulièrement de sa section « Hack » qui est une ressource et un guide pour les développeurs, un projet de base de données NoSQL appelé LevelDB vient d’être ouvert par Google.
Je vous parlais dans mon article de début d’année sur les technologies à surveiller en 2011 d’une base de données qui a attiré l’attention. Il s’agissait de Google’s Big Table. En Mai Google a rendu libre une bibliothèque de base de données clé-valeur inspirée de BigTable appelée LevelDB sous licence BSD.. Créée par Jeff Dean et Sanjay Ghemawat, BigTable est un système de stockage distribué pour les données structurées.
Le projet LevelDB est disponible pour les systèmes basés sur Unix, Mac OS X, Windows et Android.
Bien que le projet ait été ajouté dans Google Code début Mars, c’est seulement la semaine dernière qu’un article est paru sur le blog de Google permettant ainsi de rendre le projet beaucoup plus populaire ! Encore plus après que vous ayez lu cet article 😉
LevelDB n’est pas un serveur de base de données comme les autres moteurs de stockage « clé-valeur » tels que Redis ou Membase. Au lieu de cela, il pourrait très probablement être utilisé comme une base de données intégrée pour d’autres applications, un peu comme SQLite ou Berkeley DB sont utilisés. Google a conçu LevelDB comme une composante pour un système de stockage de plus haut niveau et il formera en fait la base pour l’API IndexedDB (un nouveau standard du Web qui pourra être utilisé par les applications qui ont besoin d’une base de données) dans les versions futures de Google Chrome.
L’avantage technique d’utiliser LevelDB au lieu d’autres moteurs de stockage « clé-valeur » est son support des données triées.
Selon l’annonce :
For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB. Google’s Bigtable manages millions of tablets where the contents of a particular tablet are represented by a precursor to LevelDB.
LevelDB n’est pas limité à être utilisé comme une base de données embarquée, cependant, Basho étudie déjà la possibilité d’utiliser LevelDB avec Riak afin que ce couple de système puisse être une alternative à Bitcask ou InnoDB. Voici quelques pistes que la société a dévoilé, que vous pouvez retrouver sur ce blog.
Google a également publié son propre benchmark ici.
Selon le site du projet les principales caractéristiques sont les suivantes :
- Les clés et les valeurs sont des tableaux d’octets arbitraires
- Les données stockées sont triées par clés
- Les opérations basiques sont
Put(key,value)
,Get(key)
,Delete(key)
- Les utilisateurs peuvent créer une vue instantanée afin d’obtenir une vue cohérente des données
- Les données sont automatiquement compressées en utilisant la bibliothèque de compression Snappy.
- Une documentation détaillée sur l’utilisation de la bibliothèque est incluse avec le code source
- …
Et les limites sont les suivantes :
- Ce n’est pas une base de données SQL. Il n’a pas de modèle relationnel de données, ne supportant pas les requêtes SQL ainsi que les
index
- Un unique processus (éventuellement multi-thread) peut accéder à une base de données particulière à un instant t
Vous pouvez retrouver toutes les caractéristiques et limites, en anglais, sur le site de Read Write Web.
Aujourd’hui les bases de données NoSQL sont de plus en plus surveillées. En effet, elles s’avèrent être une alternative très intéressante aux bases de données « classiques », dîtes relationnelles. Les bases de données non relationnelles s’avèrent simplement mieux adaptées à certains types de données et aujourd’hui il existe une pléthore d’options pour ceux qui recherchent une solution NoSQL. Google vient en ajouter une autre…
Contrairement à MySQL ou même à d’autres solutions NoSQL telles que MongoDB et CouchDB, LevelDB n’est pas un serveur auquel plusieurs clients peuvent se connecter et opérer à distance ou même localement.
Il devient nécessaire d’utiliser un tel système dans le cas où vous ayez besoin de satisfaire plus d’un milliard de requêtes par jours et qui nécessite un système d’accès aux données capable de trouver une information rapidement dans une volumétrie considérable. Une contrainte supplémentaire est le temps de réponse qui doit être très rapide afin de ne pas vous rendre trop impatient… Imaginez attendre plus d’une seconde par résultat sur Google !
Or, les SGBDR traditionnelles ne suffisent plus pour satisfaire de tels besoins. Effectivement les temps de réponse deviennent trop importants sur de telles volumétries (on parle ici de Pétaoctet).
Vous pouvez en savoir plus sur LevelDB, et également télécharger son code source à partir de la page du projet sur Google Code.
Connaissiez-vous ce projet ? Qu’en pensez-vous ? NoSQL va-t-il être les « SGBR » du futur ? Devrons-nous migrer nos bases de données actuelles sur ce système ? Venez réagir…