Modele de memoire en replique

Dans les bases de données relationnelles, l`atomicité doit être garantie à la fois au niveau de l`instruction SQL et au niveau de la transaction, rendant les solutions de cohérence plus complexes et coûteuses à produire. Heureusement, OceanBase surpasse ces obstacles et fournit un modèle avec des niveaux de cohérence configurables et un mécanisme de synchronisation qui minimise le temps de récupération après les défaillances du système. Ce mécanisme s`appuie sur le modèle de réplica majoritaire avec l`ajout du réplica principal. 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. L`ensemble de base des primitives parallèles de bas niveau dans Replica ressemble à ceux des langages e [Forsell04] et fork [Keller01]. Les principaux mécanismes sont des attributs pour spécifier le type de stockage de mémoire de données (privé ou partagé), contrôlant le parallélisme de niveau de thread avec des concepts de groupe de threads, commutation entre les modes NUMA et PRAM, et enfin le niveau matériel pris en charge instructions de fonctionnement parallèles. Par exemple, un modèle de cohérence peut définir qu`un processus n`est pas autorisé à émettre une opération tant que toutes les opérations précédemment émises n`ont pas été terminées. Différents modèles de cohérence imposent des conditions différentes. Un modèle de cohérence peut être considéré comme plus fort qu`un autre si cela nécessite toutes les conditions de ce modèle et plus encore. En d`autres termes, un modèle avec moins de contraintes est considéré comme un modèle de cohérence plus faible.

À haut niveau, REPLICA prend en charge trois formes majeures de parallélisme courantes dans les plateformes informatiques parallèles (données, sous-groupes synchrones et parallélisme des tâches), tandis qu`au niveau de l`instruction virtuelle de bas niveau, le parallélisme est fourni en tant qu`optimisation du compilateur indépendamment des dépendances du code. Fig. 1. Le système de langage Replica. OBJECTIFS de conception de réplique exemple: le diagramme de mémoire lente représente un exemple de cohérence lente. Le premier processus écrit 1 à l`emplacement de mémoire X, puis il écrit 1 à l`emplacement de mémoire Y. Le deuxième processus lit 1 de Y et il lit alors 0 de X même si X a été écrit avant Y. Replication dans le calcul implique le partage d`informations afin d`assurer la cohérence entre les ressources redondantes, telles que les composants logiciels ou matériels, pour améliorer fiabilité, la tolérance aux pannes ou l`accessibilité.

Les chercheurs distinguent les différents types de mémoire. Ceci est important car il semble que différents types de mémoire peuvent être stockés dans différentes parties du cerveau. Ce modèle détend la cohérence séquentielle sur les écritures simultanées par un processeur et sur les écritures qui ne sont pas liées de façon causale. Deux écritures peuvent devenir liées causalement si une écriture à une variable dépend d`une écriture précédente à n`importe quelle variable si le processeur faisant la deuxième écriture vient de lire la première écriture. Les deux écritures auraient pu être effectuées par le même processeur ou par différents processeurs. Les protocoles basés sur la base [19] peuvent être considérés comme une classe de protocoles de cohérence qui sont plus simples à implémenter. Par exemple, l`ordonnancement séquentiel est un modèle de cohérence populaire lorsque l`ordonnancement cohérent des opérations est pris en compte. L`ordre séquentiel peut être déterminé comme protocole basé sur le primaire. Dans ces protocoles, il existe un principal associé pour chaque élément de données dans un magasin de données pour coordonner les opérations d`écriture sur cet élément de données.