Théorème CAP : cohérence, disponibilité et tolérance au partitionnement

Le Cloud Computing a enrichi le monde numérique de nombreuses possibilités : la mise à disposition des ressources de Computing via Internet permet notamment des innovations rapides, une utilisation flexible des ressources et des perspectives d’évolution correspondantes, qui peuvent être adaptées aux besoins particuliers de façon entièrement individuelle. Le théorème CAP montre toutefois que garantir cette flexibilité implique des compromis à d’autres endroits. Nous vous expliquons ce que recouvre le théorème CAP (ou théorème de Brewer) et où on peut observer l’application de ce théorème sur les systèmes distribués.

IONOS Cloud Compute Engine

Les moyennes et grandes entreprises choisissent le Cloud Made in Germany. IaaS et PaaS du champion caché aux champions cachés.

Sûr
Fiable
Flexible

Qu’implique le théorème CAP ?

Le théorème CAP précise qu’il est impossible de satisfaire ou de garantir simultanément les trois propriétés suivantes dans un système distribué :

  • Consistency (cohérence) : tous les clients voient les mêmes données au même moment.
  • Availability (disponibilité) : l’ensemble des clients peuvent procéder à tout moment à des accès en lecture et en écriture puisque le système est en mesure d’y répondre en permanence.
  • Partition Tolerance (tolérance au partitionnement) : en cas de panne d’un nœud individuel ou lorsque des nœuds individuels ne sont plus en mesure de communiquer ensemble, le système peut continuer à fonctionner comme un tout.
Remarque

Le théorème CAP est basé sur une hypothèse publiée en l’an 2000 par l’informaticien Eric Brewer lors d’une conférence dans le cadre du Symposium on Principles of Distributed Computing (PODC). C’est la raison pour laquelle ce principe de limitation des propriétés des systèmes distribués est également appelé théorème de Brewer. En 2002, Seth Gilbert et Nancy Lynch du MIT ont apporté une preuve axiomatique à cette hypothèse qui est alors devenue un théorème.

Aujourd’hui, les informaticiens s’appuient sur ce théorème lors de la création d’un nouveau système distribué et choisissent un modèle de base axé sur deux des trois propriétés. Selon le théorème CAP, les groupes d’ordinateurs indépendants au sein d’un même système peuvent par conséquent être classés dans trois catégories :

  • système CP (cohérence et tolérance au partitionnement)
  • système AP (disponibilité et tolérance au partitionnement)
  • système CA (cohérence et disponibilité)

Le théorème CAP (ou théorème de Brewer) en pratique

Afin de clarifier quelque peu les implications du théorème CAP, nous vous présentons ci-dessous des exemples de systèmes distribués montrant la validité de ce théorème. Chaque exemple souligne par ailleurs en quoi le théorème de Brewer est applicable.

Exemple de système AP : le Domain Name System

Le DNS, ou Domain Name System, est un exemple connu de système AP. Cette composante réseau centrale est responsable de la résolution des noms de domaine pour les adresses IP et met l’accent sur la disponibilité et la tolérance au partitionnement. Grâce au nombre important de serveurs, ce système est pratiquement disponible sans exception. Si un serveur DNS tombe en panne, le suivant prend le relais. Toutefois, conformément au théorème CAP, le DNS ne permet pas d’obtenir une cohérence : si une entrée du DNS est modifiée, cela peut prendre plusieurs jours avant que cette modification ne soit transmise à toute la hiérarchie du système et ne puisse être vue par tous les clients.

Exemple de système CA : les systèmes de gestion de base de données relationnels

Les systèmes de gestion de base de données basés sur le modèle de base de données relationnelle constituent un bon exemple de systèmes CA. Ces systèmes de base de données se démarquent principalement par leur forte cohérence et recherchent une disponibilité aussi élevée que possible. En cas de doute, la disponibilité peut toutefois être réduite au profit de la cohérence. Quoi qu’il en soit, la tolérance au partitionnement joue ici un rôle mineur.

Exemple de système CP : les applications financières et bancaires

Dans la plupart des systèmes distribués, une importance particulière est accordée à une disponibilité élevée ce qui explique pourquoi on voit assez peu de systèmes CP dans la pratique. Ces systèmes montrent particulièrement leurs atouts dans le domaine de la finance : afin d’exclure toute erreur comptable, même en cas de perturbation du trafic de données, les applications bancaires devant prélever et transférer des montants sur les comptes de façon fiable reposent sur la cohérence et la tolérance au partitionnement.