L'ensemble des systèmes de MDP ont impleémenté, jusqu'à présent, une gestion ``à plat'' de la mémoire, dans laquelle l'ensemble des processus partagent l'ensemble des variables. Une telle approche ne peut, clairement, garantir une bonne extensibilité. Qu'on imagine le coût du maintien de la cohérence de 1000 variables partagées par 100 processus disposant chacun d'une copie locale !
Afin de limiter le coût du maintien de la cohérence des différentes copies, nous proposons d'introduire la notion de groupes hiérarchiques de processus partageant une ou plusieurs variables communes. La figure 1 montre un exemple de répartition en groupes de processus pour une configuration contenant 7 processus et 8 objets (A,B,C,D,E,F,G,H).
Figure 1: Exemple de répartition en groupes hiérarchiques
Les 8 objets sont répartis en 4 groupes qui sont les suivants:
Cette notion de groupes hiérarchiques n'exclut en rien l'accès à une variable par un processus ne faisant pas partie de son groupe. Ainsi, par exemple, le processus 5 aura les mêmes possibilités d'accès à l'objet A que le processus 3. Cet accès est réalisé par la mise en place de processus passerelles. La différence essentielle réside dans le fait que le processus 5 ne reçoit pas une copie de la variable (qui serait par la suite mise à jour/inavlidée) mais sa valeur. En d'autres termes, chaque accès à l'objet nécessite d'aller chercher l'objet dans le groupe distant (et donc de passer par le processus passerelle). On distinguera dans la suite les accès intra-groupe (ex : accès à l'objet A par le processus 3) et les accès inter-groupes (ex : accès à l'objet A par le processus 5).