Thématiques principales

mercredi 19 septembre 2018

BigData: Théorème de CAP

Il y a quelques temps, l'un de mes collègues me posa cette question:

Saurais tu me rappeler le principe des trois lois des systèmes distribués ? Il y a la cohérence mais je ne sais plus quels sont les autres....
Et la je dois avouer que si ça me disait bien quelque chose, j'ai été incapable de l'aider. J'ai bien pensé aux 3V du Big Data (Vitesse,Volume, Variété) [1] mais ce n’était pas ça et finalement ça s'est fini en blague autour des trois lois de la robotique [2]. (Nous reviendrons sur ces deux concepts)

Du coup je n'ai pas pu beaucoup aidé mon collègue qui finalement a trouvé tout seul (comme un grand)! C’était le théorème de CAP (ou de Brewer [3])! Ça me disait bien quelques chose mais quoi? Regardons cela ensemble.

Pour parler du théorème de CAP, il faut d’abord garder en tête deux concepts : ACID que nous avions vu dans les propriétés des bases de données Relationnelle [4] et BASE que nous venons de voir dans l’article précédent [5] dans les bases NoSql.

Ces deux concepts sont un peu comme les deux faces d’une même pièce: la gestion des données. D’un côté, on prône l'intégrité, de l’autre, la performance. Le théorème de CAP est la justement pour formaliser cette dualité au travers de trois concepts clefs:

  • Consistency: la cohérence des données dans la base
  • Availability: la disponibilité des données
  • Partitioning : les requêtes sur la base doivent aboutir quel que soit le partitionnement sur le réseau. 

Ainsi à partir de ces 3 concepts, le théorème de CAP énonce qu’il n’est pas possible pour un système de base de données de garantir à la fois les 3 concepts en même temps et ne peut en garantir qu’au mieux 2 [6].

Ainsi 3 configurations émergent de ce schéma mettant en évidence des types de base de données bien spécifiques:

  • CA: Coherence et disponibilité nous mène à l’ensemble des base de données les plus classique, les SGBD-R et nous ramène aux propriétés ACID
  • CP: Coherence et Partitioning nous mène à des base de données où les performances sont moindre mais où la sécurité de l'intégrité des données est primordiale. On trouvera certains SGBD-R (en cluster) et type de base NoSql configuré en conséquence.
  • AP: Disponibilité et partitioning nous conduit ici à la performance avant tout. Les bases ne sont pas forcément cohérente dans le temps mais la multiplicité des bases sur le réseau permet de garantir une réponse quoiqu’il arrive. La majeur partie des base NoSql se trouveront dans cette configuration en nous ramenant aux propriétés BASE.

Alors en fait le monde réel n’est pas si cloisonné et le théorème de CAP ne doit pas être interprété aussi strictement. En réalité chacun de ces concepts peut se représenter selon différents degrés d'équilibre variant dans le temps selon l’architecture choisi et les cycles de vie des données élaborées. Ainsi, même s’il n’est possible de garantir que deux propriétés à un instant données, rien n'empêche de chercher à les garantir à tour de rôle.

Sans entrer dans les détails (que vous trouverez ici [7]), cela reste une démarche complexe mais possible selon le besoin, il restera alors à composer avec le coût de la mise en oeuvre….

Références

[1] https://www.axess.fr/definition-big-data-3v/
[2] https://fr.wikipedia.org/wiki/Trois_lois_de_la_robotique
[3] https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_CAP
[4] http://un-est-tout-et-tout-est-un.blogspot.com/2018/02/sgbd-r-introduction.html
[5] À publier
[6] https://openclassrooms.com/fr/courses/4462426-maitrisez-les-bases-de-donnees-nosql/4462471-maitrisez-le-theoreme-de-cap
[7] https://www.infoq.com/fr/articles/cap-twelve-years-later-how-the-rules-have-changed

Aucun commentaire:

Enregistrer un commentaire