Voldemort (base de données)

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

Le projet Voldemort est le nom d'une base de données qui propose de construire son index en utilisant Hadoop.

Projet[modifier | modifier le code]

Ce projet a été nommé d'après le principal antagoniste de l'histoire et du personnage de la saga Harry Potter Voldemort.

En informatique, Voldemort est une base de données de type clé/valeur distribuée sur plusieurs serveurs. Les données sont automatiquement partagées de sorte que chaque serveur ne contienne qu'un sous-ensemble de l'ensemble total des données. Chacun de ses serveurs peut supporter et gérer les pannes d'une manière transparente. Voldemort fait désormais ses preuves sur le réseau social LinkedIn qui s’en sert en partie sur ses serveurs pour remédier aux problèmes de stockage à haute évolutivité où le partitionnement simple et fonctionnel qui n'est plus suffisant. L'API est très simple, les 4 opérations utilisées sont GET, PUT, GET_ALL et DELETE.

Base de données Voldemort[modifier | modifier le code]

Voldemort n'est ni une base de données objet, ni une base de données relationnelle qui tend à satisfaire les propriétés ACID des SGBDR , c'est plutôt une table de hachage persistante à tolérance de pannes.

Une étude réalisée en 2012, qui a pour but de comparer les systèmes de stockage de données de surveillance de l'APM a indiqué que Voldemort, Cassandra et HBase offrent une évolutivité linéaire dans la plupart des cas, avec Voldemort ayant la plus faible latence et Cassandra ayant le plus haut débit[1].

Avantages[modifier | modifier le code]

Voldemort offre un certain nombre d'avantages par rapport aux autres bases de données:

  • Il combine la mise en cache en mémoire avec le système de stockage de telle sorte qu'une mise en cache de niveau séparée n'est plus nécessaire.
  • Il est possible de reproduire la couche de stockage, car elle est entièrement simulée. Cela rend la mise au point et le test unitaire simple, comme à l'encontre d'un système jetable en mémoire de stockage, sans la nécessité d'un véritable pôle ou d'un système de stockage réel.
  • Lecture et écriture à l'échelle horizontale.
  • Simple API: L'API décide la réplication de données et de placements et peut accueillir un large éventail de stratégies spécifiques à l'application.

Le partitionnement des données est transparent : Ceci permet l'expansion de la grappe sans rééquilibrer toutes les données.

Propriétés[modifier | modifier le code]

Placement de données
Distribution dans les centre de traitement de données qui sont éloignés.
Réplication de données
Les données sont automatiquement répliquées sur un grand nombre de serveurs.
Partitionnement des données
Les données sont automatiquement partagées afin que le serveur ne contienne qu'un sous-ensemble de données.
Bonne performance par nœud
10 - 20k opérations par seconde peuvent se produire selon les machines, le réseau, le système de disque et le facteur de réplication de données.
Indépendance du nœud
Chaque nœud est indépendant des autres nœuds sans point central de défaillance ou de coordination.
Échecs transparents
Les pannes de serveur sont gérées de manière transparente de sorte que l'utilisateur ne voit pas les problèmes.

Historique:Les éléments de données sont historisés afin de maximiser l'intégrité des données en cas de panne sans compromettre la disponibilité du système.

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Comparison to relational databases », Project Voldemort - A distributed database, http://project-voldemort.com/ (consulté le 2011-04-05)

Liens externes[modifier | modifier le code]