• Aucun résultat trouvé

Modèles et protocoles de cohérence dans les systèmes pair-à-pair

Partie I – Contexte d’étude : gestion des données dans les grilles de calcul 7

4.2 Modèles et protocoles de cohérence dans les systèmes pair-à-pair

ne sont pas résolus. Au contraire, le mécanisme de chaînage accentue des problèmes.

Le chemin réseau à emprunter pour suivre le chaînage peut exploiter des liens à forte latence. De plus, la localisation d’une donnée devient impossible dès qu’un maillon de la chaîne, c’est-à-dire un nœud, est en panne.

4.2 Modèles et protocoles de cohérence dans les systèmes

4.2 – Modèles et protocoles de cohérence dans les systèmes pair-à-pair 45

recherche visant à rapprocher au sein du réseau logique les pairs ayant des affini-tés [102, 95, 57, 103] ou à prendre en compte la distance en latence entre les pairs [41].

Ces réseaux logiques permettent en général de supporter une grande dynamicité. Gnu-tella [86] est basé sur un tel réseau.

Systèmes pair-à-pair structurés. Les systèmes pair-à-pair structurés s’appuient sur une structure distribuée, en général une table de hachage (DHT pour l’anglais Distribu-ted Hash Table). Chaque pair se voit attribuer un identifiant résultat de l’application d’une fonction de hachage sur son adresse IP (par exemple SHA1 ou MD5). Les pairs peuvent ainsi être classés selon leur identifiant au sein d’une table de hachage distri-buée. Chaque pair possède alors unindexcontenant un certain nombre d’autres pairs répartis sur la DHT. Le contenu de cet index varie selon l’implémentation. En utilisant cette approche, des systèmes pair-à-pair comme Chord [99], Pastry [94] ou Tapes-try [106] obtiennent une couche de routage très performante.

Systèmes pair-à-pair hybrides. Certains systèmes pair-à-pair s’inspirent à la fois des sys-tèmes structurés et des syssys-tèmes non-structurés. Des syssys-tèmes comme KaZaA [116]

utilisent la notion de “super-pair” : les pairs “classiques” sont liés à des super-pairs qui eux-même sont reliés entre eux. Les implémentations actuelles de la spécification JXTA [115] proposent une table de hachage distribuée entre les super-pairs appelés pairs de rendez-vous.

4.2.2 Approches pour la localisation des données

Les systèmes pair-à-pair utilisent le réseau logique sous-jacent pour la localisation des données et le routage.

Les systèmes non-structurés utilisent des mécanismes d’inondation pour localiser les don-nées. Pour cela, un pair envoie une requête à chacun de ses voisins dans le réseau logique puis chacun des voisins la retransmet à chacun de ses voisins, et ainsi de suite. Des méca-nismes sont généralement mis en place pour limiter l’inondation : le nombre de retransmis-sions est limité ; de plus, à chaque retransmission, le nombre de voisins à contacter peut être réduit grâce à des filtres de Bloom. Enfin de nombreux travaux de recherche visent à accélé-rer la localisation des données conservant en cache les résultats des recherches antérieures.

Les mécanismes de recherche des systèmes non-structurés offrent une localisationincertaine: des données présentes dans le système peuvent ne pas être trouvées lors d’une recherche.

Les systèmes structurés attribuent des identifiants aux données dans le même espace que celui des identifiants des nœuds. Le pair dont l’identifiant est numériquement le plus proche de celui d’une donnée estresponsablede cette donnée. Cela signifie qu’il connaît l’emplace-ment de cette donnée, à l’image des nœuds gestionnaires des MVP. Ainsi, la localisation d’une donnée revient à acheminer une requête vers le pair dont l’identifiant est le plus proche. La DHT au sein de laquelle sont répartis les pair permet de le faire de manière ef-ficace, généralement enlog(n)sauts logiques3, oùnest le nombre de pairs dans le système.

De surcroît, la localisation dans ces systèmes estcertaine.

3Un saut logique correspond au chemin physique séparant deux voisins dans le réseau logique.

(propagation "au mieux" entre les serveurs) des

mises à jour Propagation

écritures

lectures

Clients Primary tier

Serveurs secondaires

FIG. 4.1 – Communications au sein du systèmes Oceanstore.

4.2.3 Cohérence des données dans les systèmes pair-à-pair

La majorité des systèmes pair-à-pair sont conçus pour partager des fichiers en lecture seule [116, 86, 108]. Dans ce cas-là, les problèmes de cohérence des données sont inexistants : les données sont placées et répliquées dans le système puis ne sont jamais modifiées. La principale problématique à laquelle font face ces systèmes consiste donc en la recherche de données présentes dans le système.

Toutefois, certains systèmes pair-à-pair comme OceanStore [73], Ivy [85] et Pastis [23]

s’intéressent au partage de données modifiables. Ce sont trois systèmes de gestion de fi-chiers.

OceanStore [73] est illustré sur la figure 4.1. Il permet de partager des données modifiables.

Ce système utilise un ensemble de pairs jouant un rôle particulier appeléprimary tier. Il est responsable de la gestion des modifications apportées aux données. C’est leprimary tierqui reçoit les requêtes de modification. Il est en charge de la résolution des conflits en décidant de l’ordre d’application des modifications. Cette décision est ensuite trans-mise à l’ensemble des pairs possédant une copie. L’ensemble de pairs composant le primary tier est supposé stable et possédant un bon réseau d’interconnexion. Ce sys-tème se rapproche donc du modèle client/serveur où le serveur est mis en œuvre par un ensemble de pairs particuliers.

Ivy [85] est un système exploitant la notion de journaux (logs) pour permettre à plusieurs nœuds d’effectuer des écritures concurrentes. Comme l’illustre la figure 4.2, chaque

4.2 – Modèles et protocoles de cohérence dans les systèmes pair-à-pair 47

Enregistrement np−2 Début de

journal

Utilisateur 2

Début de journal

Utilisateur p

Début de journal

Utilisateur 1 Enregistrement n1

Enregistrement n2

Enregistrement n1−1

Enregistrement n2−1

Enregistrement np Enregistrement np−1

Enregistrement n1−2

Enregistrement n2−2

FIG. 4.2 – Ivy utilise un journal par utilisateur pour stocker les écritures.

utilisateur possède un journal dans lequel il écrit les modifications apportées à chaque donnée partagée. Ivy, basé sur Chord, utilise la DHT pour stocker les journaux des différents utilisateurs. La lecture d’un fichier nécessite donc le parcours de multiples journaux. De plus, dès qu’un fichier est partagé par plusieurs utilisateurs, des conflits peuvent apparaître. Ivy propose des outils permettant leur résolution manuelle. Le modèle de cohérence implémenté par ce système est de type relâché.

Pastis [23] est conçu comme un véritable système de gestion de fichiers. Il s’appuie sur la notion de descripteur de fichiers (en anglais i-node). Les descripteurs de fichiers sont stockés dans une DHT (PAST) sous forme de blocs modifiables ; ces blocs sont appe-lés UCB pour l’anglaisUser Certificate Block. Ils contiennent en effet des données per-mettant de vérifier l’intégrité du bloc ainsi que son propriétaire. Les descripteurs de fichiers contiennent des pointeurs sur des blocs de contenu : les CHB pour l’anglais Content Hash Block. Les CHB sont des blocs non-modifiables. Les modifications de fi-chiers entraînent donc des suppressions/ajouts de CHB et des modifications d’UCB.

La figure 4.3 illustre les relations entre ces différents blocs. Le système Pastis met en œuvre des mécanismes complexes de signature afin d’assurer l’intégrité et l’authenti-cité des fichiers. Il propose deux modèles de cohérence relâchée : 1) le modèle close-to-open, dans lequel que les écritures ne sont propagées qu’après la fermeture du fichier et les écritures distantes ne sont visibles qu’à l’ouverture du fichier ; et 2) le modèle plus relâchéread your writesqui garantit que chaque lecture reflète toutes les écritures locales précédentes.

Les clés représentent des identifiants permettant la localisation au sein de la DHT.

Contenu de fichier

CHB Descripteur de fichier (inode)

Attributs Clé bloc 1

Clé bloc 2

Clé bloc 3

UCB Contenu d’un répertoire

Nom 1

Nom 2

Nom 3

Clé i−node 1

Clé i−node 3

CHB

Clé i−node 2

FIG. 4.3 – Le système de fichier Pastis.

Bien que ces systèmes pair-à-pair permettent le partage de fichiers modifiables à grande échelle, ils ont été conçus comme des systèmes de gestion de fichiers et proposent des mo-dèles de cohérence très relâchés qui ne conviennent généralement pas pour le partage des données des applications de calcul scientifique.