Sobes.tech
Middle

Qu'est-ce que le théorème CAP?

sobes.tech IA

Réponse de l'IA

Le théorème CAP (également connu sous le nom de théorème de Brewer) stipule qu’il est impossible dans un système informatique distribué de garantir simultanément :

  • Cohérence (Consistency) : Tous les nœuds voient les mêmes données au même moment. Toute opération de lecture obtient les données les plus récentes écrites.
  • Disponibilité (Availability) : Chaque requête reçoit une réponse non vide, indépendamment de l’état des autres nœuds. Le système est toujours disponible pour les opérations de lecture et d’écriture.
  • Tolérance aux partitions (Partition Tolerance) : Le système continue de fonctionner malgré la perte de communication entre les nœuds (divisions réseau).

En cas de partition réseau ($P$), le système doit choisir entre cohérence ($C$) et disponibilité ($A$).

  • Système CA : Suppose qu’il n’y a pas de partitions réseau. Lorsqu’elles se produisent, le système devient inaccessible ou incohérent. Exemples : bases de données relationnelles classiques avec réplication synchrone sur un réseau local.
  • Système CP : Sacrifie la disponibilité au profit de la cohérence lors d’une partition réseau. Si un nœud ne peut pas communiquer avec la majorité, il cesse de répondre aux requêtes pour garantir la cohérence des données. Exemples : Zookeeper, etcd, systèmes distribués utilisant des protocoles de consensus comme Paxos ou Raft.
  • Système AP : Sacrifie la cohérence au profit de la disponibilité lors d’une partition réseau. Le système continue de répondre aux requêtes, mais peut fournir des données obsolètes ou conflictuelles. La cohérence éventuelle est atteinte ultérieurement. Exemples : DynamoDB, Cassandra, MongoDB (par défaut dans certaines configurations).

Le théorème CAP s’applique aux systèmes de stockage de données distribués. Dans les systèmes réels, il faut souvent faire des compromis et choisir le modèle qui convient le mieux aux exigences spécifiques de l’application.