En termes très simples, les modèles de cohérence définissent des règles pour l`ordre et la visibilité des lectures et des mises à jour. Vous avez peut-être entendu «la relativité signifie qu`il n`existe pas de simultanéité» utilisée comme argument selon lequel les horloges synchronisées ne peuvent pas exister. Il s`agit d`un malentendu: les équations de la relativité spéciale et générale fournissent des équations exactes pour les transformations temporelles, et il est possible de définir un nombre quelconque d`horloges de temps sensées, synchronisées globalement. Les contraintes de cohérence qui font référence à ces horloges dépendront du choix de l`horloge, par exemple en fonction de son cadre de référence, un système peut ou non fournir une linéarisation. La bonne nouvelle, c`est qu`a.) à toutes fins utiles, les horloges sur terre sont si proches des vitesses et des accélérations de l`autre que les erreurs sont beaucoup plus petites que les latences de canal latéral, et b.) la plupart des algorithmes permettant d`assurer des bornes en temps réel dans les réseaux asynchrones utilisent des messages causaux pour appliquer un ordre en temps réel, et l`ordre résultant est donc invariant dans toutes les trames de référence. Dans un modèle de cohérence centré sur le client, l`accent est mis sur la façon dont les données sont vues par les clients. Les données peuvent varier des clients aux clients si la réplication des données n`est pas terminée. L`accès aux données plus rapide est la principale préoccupation, de sorte que nous pourrions opter pour un modèle de cohérence moins stricte comme la cohérence éventuelle. Les modèles de cohérence définissent des règles pour l`ordre apparent et la visibilité des mises à jour, et sont sur un continuum avec des compromis. [3] Jepsen analyse les propriétés de sécurité des systèmes distribués, notamment en identifiant les violations des modèles de cohérence. Mais que sont les modèles de cohérence? Quels phénomènes autorisent-ils? Quel type de cohérence un programme donné a-t-il vraiment besoin? Les modèles suivants sont des modèles de consistance détendue: la cohérence stricte est le modèle de cohérence le plus fort. Sous ce modèle, une écriture à une variable par n`importe quel processeur doit être vue instantanément par tous les processeurs.
Le diagramme de modèle strict et les diagrammes de modèle non-strict décrivent la contrainte de temps – instantanée. Il peut être mieux compris comme si une horloge globale est présente dans laquelle chaque écriture doit être reflétée dans tous les caches de processeur à la fin de cette période d`horloge. L`opération suivante doit se produire uniquement au cours de la prochaine période d`horloge. En informatique, les modèles de cohérence sont utilisés dans les systèmes distribués tels que les systèmes de mémoire partagée distribués ou les magasins de données distribués (tels qu`un système de fichiers, les bases de données, les systèmes de réplication optimiste ou la mise en cache Web). Le système est dit pour prendre en charge un modèle donné si les opérations sur la mémoire suivent des règles spécifiques. Le modèle de cohérence des données spécifie un contrat entre le programmeur et le système, dans lequel le système garantit que si le programmeur suit les règles, la mémoire sera cohérente et les résultats de la lecture, de l`écriture ou de la mise à jour de la mémoire seront prévisibles. Ceci est différent de la cohérence, qui se produit dans les systèmes qui sont mis en cache ou moins de cachette, et est la cohérence des données par rapport à tous les processeurs. La cohérence traite du maintien d`un ordre global dans lequel les écritures dans un seul emplacement ou une seule variable sont vues par tous les processeurs. La cohérence traite de l`ordonnancement des opérations à plusieurs emplacements par rapport à tous les processeurs.
Comme pour les modèles précédents, les relaxations permises par PSO ne sont pas suffisamment flexibles pour être utiles pour l`optimisation du compilateur, ce qui nécessite une optimisation beaucoup plus flexible. La plupart des bases de données décentralisées partagées ont un éventuel modèle de cohérence, soit BASE (fondamentalement disponible, état souple, éventuellement cohérent), ou une combinaison d`ACID et de BASE parfois appelée SALT (séquentielle, convenue, Ledgered, inviolable; et aussi Symétrique, sans admin, Ledgered, et le temps-consensuel). 21 22 [23] la cohérence causale [19] définie par Hutto et Ahamad, 1990 [10] est un modèle de cohérence plus faible que la cohérence séquentielle en faisant la distinction entre les opérations liées au lien de causalité et celles qui ne sont pas liées. Par exemple, si un événement b prend effet à partir d`un événement antérieur a, la cohérence causale garantit que tous les processus voient l`événement b après l`événement a.