Riak

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Riak
Logo

Développé par Basho Technologies (en)
Première version 2009
Dernière version 2.1.1 ()
Écrit en ErlangVoir et modifier les données sur Wikidata
Environnement Multi plate-forme
Type Base de données orientée clé-valeur
Licence Apache
Site web http://fr.basho.com/products/#riak

Riak est un système de gestion de base de données distribué, scalable de manière linéaire, hautes performances, sans schéma et orienté clé-valeur. Riak est écrit avec les langages de programmation Erlang, C et JavaScript, distribué sous licence Apache et inspiré de Dynamo. Il fait partie de la mouvance NoSQL et vise la meilleure tolérance aux pannes possible.

Riak est un système distribué puissant, avec une haute disponibilité, et une tolérance à la panne. Il permet une déconnexion des nœuds pouvant être défaillant, possible sans dégradation ou perte de l’intégrité des données et permet d'effectuer des requêtes REST HTTP, dans une douzaine de langages de programmation. Néanmoins il est déconseillé pour des structures de données complexes, lorsqu'on veut structurer nos données. C'est un systèmes qui n'est pas encore très robuste et difficile pour les requêtes ad hoc. A cela il faut ajouter que MapReduce, l'outil conçu pour lire, traiter et écrire des volumes massifs de données, est encore limité en terme d'action possible sur Riak. Enfin il demande de bonnes bases d'Erlang pour faire des requêtes optimisées.

Historique[modifier | modifier le code]

Riak fut initialement développé par Basho Technologies (en) en 2009 pour une force de vente en ligne.

Principales caractéristiques[modifier | modifier le code]

Données manipulées[modifier | modifier le code]

Riak fragmente les données en bucket, un bucket est une manière de séparer logiquement les données. Un bucket est aussi un moyen de définir des propriétés différentes pour des objets différents, comme la réplication pour différents types de données.

La faiblesse de Riak : une durabilité non automatique[modifier | modifier le code]

Les écritures de Riak sont mises en mémoires tampon avant d'être mises en mémoire physique sur un disque. Riak écrit sur des "nœuds", Lorsque l'écriture sur un nœud est considérée comme réussie il est toujours possible qu’une défaillance ou un nœud perd ses données

L'interface de Riak[modifier | modifier le code]

Riak utilise HTTP et les opérateurs CRUD (pour create, read, update, delete) de services Restful

  • POST (Create),
  • GET (Read),
  • PUT (Update),
  • and DELETE (Delete).

Le modèle de l’URL est http://SERVER:PORT/riak/BUCKET/KEY

Les liens[modifier | modifier le code]

L’API HTTP de Riak offre un moyen simple de récupérer des objets liés à un nombre arbitraire de liens.

Déploiement[modifier | modifier le code]

Pour démarrer des instances de serveurs il faut lancer la commande riak start. Par exemple :

$ dev/dev1/bin/riak start

$ dev/dev2/bin/riak start

$ dev/dev3/bin/riak start

Pour créer un cluster il faut le faire à l’aide de la commande de riak-admin de chaque serveur appelé joint (jointure) et les pointer vers un autre nœud du cluster. Par exemple :

$ dev/dev2/bin/riak-admin join dev1@127.0.0.1

$ dev/dev3/bin/riak-admin join dev2@127.0.0.1

Mises en œuvre notables[modifier | modifier le code]

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]