Distribution de données selon la méthode PBST

Transcription

Distribution de données selon la méthode PBST
Distribution de données selon la méthode PBST* sur une grille
informatique
Amina Chikhaoui
Distribution de données selon la méthode PBST* sur
une grille informatique
Amina Chikhaoui, Djamel-Eddine Zegour, Walid-Khaled Hidouci
École nationale Supérieure d’Informatique, ESI
Alger, Algérie
{a_chikhaoui, d_zegour, w_hidouci}@esi.dz
Résumé— Les grilles informatiques impliquent le partage des
ressources hétérogènes de calcul et de stockage à l’échelle
planétaire. Récemment, l’utilisation des infrastructures de
grilles a été centrée sur les applications de distribution des
grands volumes de données. Les méthodes de gestion des
données modernes ne reposent plus sur des systèmes
centralisés. Pour offrir de meilleurs temps, il faut appliquer
des structures dédiées aux environnements distribués. PBST*
(Distributed Partitioned Binary Search Tree) est une structure
de données arborescente dédiée aux environnements
distribués. Cette méthode se caractérise particulièrement par
le partitionnement dynamique de données en vue de les
distribuer sur plusieurs ressources informatiques et de les
traiter en parallèle. Dans cet article, nous proposons un
protocole de distribution de données selon PBST* pour le
placement de données sur les grilles.
Mot_clés : Grille informatique ; SDDS.
I.
INTRODUCTION
La technologie dite "grille informatique" est une
architecture en plein expansion. La première apparition
du terme "grille" date de l'article de Ian Foster [1]. Il est né
par analogie avec la "grille de distribution de la puissance
électrique" qui permet d’obtenir une puissance électrique
sans se soucier de la provenance et la manière de
fabrication de cette énergie [2]. La grille reprend ce
principe. En effet plusieurs ressources alimentent un
réseau afin de fournir une puissance globale.
On définit une grille comme étant une infrastructure
virtuelle constituée d'un ensemble de ressources
informatiques potentiellement partagées, distribuées,
hétérogènes et sans administration centralisée. Les grilles
permettent de répondre aux besoins des applications
scientifiques caractérisées par un calcul intensif et des
volumes de données de l’ordre du Pétaoctet.
Les méthodes de gestion des données modernes ne
reposent plus sur des systèmes centralisés [3]. L’accès à
l’information devient alors un véritable problème du fait :
 de la répartition de grandes quantités de données
sur différents réseaux.
 de l’absence d’un index centralisé.
Pour résoudre ce problème, on a recours à d’autres
modèles de distribution de données.
Les Structures de Données Distribuées et Scalables
(SDDS) sont une nouvelle classe de structures de données
introduites vers 1993 par le Litwin au CERIA (Centre de
Recherche en Informatique Appliquée) [4] spécifiquement
conçues pour la gestion de fichiers en mémoire centrale
distribuée d’un multiordinateur (un réseau de PCs ou
stations de travail interconnectés par un réseau informatique
(LAN, WAN, etc.) où chaque station a sa propre mémoire
locale.). Elles fournissent un mécanisme général d’accès à
des données réparties dynamiquement. Les SDDS sont
caractérisées par la scalabilité, la distribution et la
disponibilité.
Le fichier SDDS grandit de manière dynamique par
l’éclatement des serveurs suite à la surcharge de ces
derniers et se rétrécit par fusion de serveurs suite aux
suppressions d’articles. Son évolution est transparente pour
les applications. Celles-ci appellent les clients SDDS qui
gèrent l’accès aux serveurs comme s’il s’agissait de
structure de données classiques.
Les SDDS sont caractérisées aussi par l’absence d’un
index central.
Selon la stratégie de répartition des données on peut
distinguer deux grandes familles de SDDS. Les SDDS
basées sur la distribution par les arbres (RP* [9],
DRT*[10], etc) et les SDDS basées sur la distribution par
hachage (DDH [5], EH*[6], IH*[7], etc ).
PBST* (Distributed Partitioned Binary Search Tree)
proposé par Zegour est une structure de données
arborescente. Elle se caractérise particulièrement par le
partitionnement de données en vue de les distribuer sur
plusieurs ressources informatiques et de les traiter en
parallèle.
Dans
cet article, nous proposons un protocole
implémentant la distribution des données selon PBST* sur
une grille informatique.
La suite de l’article est organisée comme suit : dans la
deuxième section nous allons décrire la méthode PBST*.
Dans la troisième section, nous présenterons notre
protocole. Les tests seront présentés dans la quatrième
section. Enfin, la cinquième section conclut l’article.
Distribution de données selon la méthode PBST* sur une grille
informatique
II.
PBST*
A. Discription de PBST*
PBST* est une structure de données dédiée aux
environnements distribués. Elle consiste à distribuer un
grand fichier de données conformément au principe des
SDDS. Elle se base sur le modèle client/serveur.
Comme toutes les SDDS, PBST* est distribué sur
plusieurs serveurs. Chaque serveur S contient un ensemble
d’enregistrements "case" organisés sous forme d’un arbre
de recherche binaire équilibré et un intervalle [a, b].
Initialement le système contient un seul serveur
"serveur1" vide avec l’intervalle]-, + [, qui représente le
serveur racine du fichier.
Dans PBST* il existe deux types de serveur
 Serveur de données : il contient un arbre de
données et l’adresse de son serveur père.
 Serveur de données index : il contient un arbre de
données et l’adresse vers son serveur père ainsi que
toutes les adresses de ses serveurs fils.
Le client PBST* a une image partielle ou complète.
Cette image est un arbre de recherche binaire où chaque
nœud contient l’adresse et l’intervalle de clés des serveurs
qui sont déjà visités par ce client. Au départ cette image
contient un seul nœud qui représente le serveur racine avec
sa plage de clés ]-, +[. De nouveaux serveurs sont
rajoutés à cette image par le biais des messages correctifs
envoyés par les serveurs. Grace à cette image, le client peut
accéder directement à la partition sur laquelle il désire
réaliser des opérations sans passer par le serveur racine.
Amina Chikhaoui
inférieur à sint. Ceci implique que les deux cases peuvent
être incluses dans un seul serveur.
Une fusion entre trois serveurs est possible lorsque le
fichier est réparti uniquement sur trois serveurs qui sont le
serveur racine et ses deux fils.
3) Co-balancement
Lorsque la taille d’un serveur est inférieur à smin et la taille
de son frère est supérieure à sint. Le co-balancement vise à
équilibrer le chargement des deux serveurs frères en
déplaçant un nombre de nœuds de l’arbre du serveur dont le
taux de chargement est supérieur à sint vers celle de son
frère.
III.
PROTOCOLE PROPOSE
A. Architecture générale
Notre solution se base sur une architecture particulière
de grille à savoir la fédération de clusters [8, 11]. La figure
5 montre une telle architecture. Donc, selon cette
architecture une grille est composée d’un ensemble de
clusters connectés à travers un réseau global WAN. Chaque
cluster est composé d’un ensemble de nœuds qui se
communiquent à travers un réseau local LAN.
Nous pouvons représenter cette topologie par un modèle
arborescent à deux niveaux. Le niveau1 représente les
gestionnaires de clusters (coordinateurs) et le niveau2
représente les nœuds de calcul et de stockage (NCS).
Le modèle PBST* est défini par trois paramètres qui
sont :
 Le paramètre de partitionnement (n): un serveur
PBST* contient au maximum (n-1) enregistrements.
 Le seuil minimal (smin) : un serveur contient au
minimum smin enregistrements.
 Le seuil intermidiaire (sint) :sint=n-smin.
Figure 1. Un cas particulier de grille: les fédérations de clusters.
Donc, un fichier PBST* est distribué sur un ensemble
des NCS de la grille (Figure 2). Chaque NCS contient une
case de ce fichier.
Ces paramètres agissent sur le taux de chargement des
serveurs et permettent la réorganisation du fichier. Suite
aux opérations d’insertions et de suppressions sur le fichier,
des éclatements, des fusions et des co-balancements des
serveurs peuvent avoir lieu.
1) Eclatement
Lorsque le taux de chargement d’une case atteint n (le
paramètre de partitionnement). On dit que le serveur est
saturé.
Si c’est le serveur racine est saturé, deux nouveaux
serveurs seront créés pour recevoir le sous arbre gauche et
le sous arbre droit. Le serveur racine ne garde que le nœud
racine. Sinon un seul serveur est alloué. Ce nouveau serveur
reçoit le sous arbre gauche ou droit selon le cas.
2) Fusion
Lorsque le taux de chargement d’un serveur diminue au
dessous de smin et la taille de la case de son frère est
Case de fichier1.
Case de fichier2.
Case de fichier3.
Figure 2. Architecture globale de la plate forme.
Distribution de données selon la méthode PBST* sur une grille
informatique
B. Description de l’architecture des composants de notre
système
Nous décrivons ci-après les différents composants de notre
système.
1) NCS :
Chaque NCS peut être un serveur ou un client PBST*.
Décrivons ci-après ces deux composants :
 Serveur :
C’est l’entité responsable de la gestion des données et
d’exécution des requêtes du client. Il se charge de
sauvegarder un fragment (case) du fichier pour pouvoir
exécuter les requêtes émises par les clients. Ces fragments
sont sous forme d’arbres de recherche binaire équilibrés.
Un serveur peut sauvegarder plusieurs cases de plusieurs
fichiers.

Client :
C’est l’interface entre l’application de l’utilisateur et les
serveurs. La localisation des serveurs reste invisible aux
applications. En effet, celles-ci ignorent totalement la
structure de la répartition du fichier. Le client peut
supporter plusieurs images pour pouvoir accéder à plusieurs
fichiers SDDS. Ces images sont sous forme d’arbres
binaires, dont chaque nœud contient des informations sur
un serveur déjà référencé (son adresse et son intervalle).
Le client achemine les requêtes de l’application vers les
serveurs puis il se bloque en attente d’une réponse ou des
messages correctifs (IAMs : Image Ajustement Message)
en provenance de ces derniers. Ces IAMs serviront pour
l’amélioration de l’image du client.
2) Coordinateur
Les coordinateurs se chargent de gérer toutes les
demandes envoyées par les clients et les serveurs. Pour
cela, il dispose de deux tables FAT et PAT.


FAT (File Allocation Table) : cette table permet
de gérer l’attribution des noms des fichiers et
d’assurer leurs unicités. Chaque case de cette table
contient toutes les informations nécessaires au
déroulement des différentes opérations relatives à
un fichier (création, ouverture, fermeture et
suppression).
PAT (Physical Allocation Table): Cette table
contient des informations relatives au déroulement
des opérations d’allocations et de libérations des
serveurs.
C. Opérations sur les fichiers
Les opérations sur les fichiers sont la création d’un
fichier, l’ouverture d’un fichier, la fermeture d’un fichier et
la suppression d’un fichier. Dans ce qui suit, nous allons
illustrer les protocoles correspondants à la création et la
suppression d’un fichier.
1) Création d’un fichier
Lors de la création d’un nouveau fichier, le client
envoie une requête à son chef de cluster. Celui-ci vérifie
qu’aucun fichier avec le même nom n’existe dans sa table
Amina Chikhaoui
FAT. Si c’est le cas, il alloue un serveur racine pour ce
fichier s’il y a un nœud qui contient au moins une case libre
dans son cluster sinon il envoie une requête en multicast
pour allouer un descripteur pour ce fichier. A la fin de cette
opération il duplique le nom, numéro et le descripteur de ce
fichier dans toutes les FATs des autres coordinateurs afin
d’assurer l’unicité des noms de fichiers. La figure 7 illustre
cette opération.
2) Suppression d’un fichier
Lorsqu’un coordinateur reçoit une requête de
suppression d’un fichier, il vérifier d’abord l’existence de
ce fichier dans sa table FAT. Si le fichier n’existe pas, il
répond au client qui a demandé la suppression de ce fichier
en envoyant un message d’erreur. Si le fichier existe et il
est en cour d’utilisation, le coordinateur envoie au client un
message lui indiquant que le fichier est ouvert par d’autres
utilisateurs. Dans l’autre cas, le coordinateur envoie un
message de suppression de ce fichier en multicast à tous les
autres coordinateurs. Ensuite, chaque coordinateur envoie
un message à tous les serveurs contenant les fragments de
ce fichier afin de supprimer ces classes de données et à la
fin les coordinateurs libèrent tous les serveurs concernés
par ce fichier.
D. Opérations sur les enregistrements
1) La recherche
Conformément à la spécification de PBST, l’opération
de recherche d’un enregistrement se déroule selon le
scénario suivant :
Soit Cl le client qui veut chercher un enregistrement de
clé donnée. Tout d’abord, ce client fait une recherche dans
son image. Soit Sk le serveur qui est susceptible d’inclure
l’enregistrement.
A la réception de la requête, Sk vérifie si la clé est dans
son intervalle de données. Si c’est le cas, il cherche cette clé
dans sa case. Si la clé existe il envoie une réponse au Cl
sinon il redirige cette requête vers un autre serveur et
parallèlement il envoie un IAM à Cl pour que ce dernier
corriger son image.
A la fin le client Cl est acquitté par le serveur Sj qui
contient cette clé, si cette clé existe. Sinon, Cl est acquitté
par un serveur de données.
2) L’insertion
L’opération d’insertion d’un nouvel enregistrement
commence par la recherche du serveur où la clé de cet
enregistrement appartient à son intervalle. Pour cela, le
client Cl qui veut insérer un nouvel enregistrement envoie
la requête d’insertion vers le serveur Sk retourné par son
image. Cette requête contient le nom du fichier dans lequel
l’enregistrement doit être inséré ainsi que l’enregistrement
qu’on veut insérer avec sa clé primaire. A la réception de
cette requête, Sk peut rediriger cette dernière vers d’autres
serveurs. A la fin de cette opération, Cl est acquitté soit par
le serveur qui contient cette clé (si la clé existe déjà) soit
par le serveur où on a inséré la clé.
Distribution de données selon la méthode PBST* sur une grille
informatique
Amina Chikhaoui
L’insertion peut invoquer des traitements sur les
serveurs données-index en cas d’éclatement du serveur de
données qui a exécuté la requête. Dans ce cas, le
coordinateur local sera sollicité pour l’allocation d’un
nouveau serveur.
L’allocation d’un nouveau serveur se fait comme suit :
Si le cluster local possède un serveur Sh qui a une case
libre, il donne l’adresse de Sh au Sc. Après, on équilibre la
charge entre ces deux serveurs en envoyant un sous arbre
de Sc vers Sh. Dans l’autre cas, le coordinateur envoie une
requête en multicast vers tous les autres chefs de clusters
afin d’allouer un serveur qui contient une case vide.
IV.
LES TESTS
Nous présentons dans cette section les tests de
simulation qu’on a effectués sur notre prototype afin de
tester sa validité, d’évaluer ces performances et d’étudier sa
scalabilité.
Notre grille est composée de 5 clusters. Chaque cluster
contient 10 nœuds de calcul et stockage.
Noter qu’on dans nos tests, on s’intéresse au nombre
d’éclatements des serveurs. Noter aussi que les tailles des
cases qu’on va utiliser sont très inférieures de celles
utilisées dans la pratique, mais ce choix nous permet
d’avoir un grand nombre d’éclatements et d’observer ainsi
le comportement de notre prototype.
A. Taux de chargement des cases des serveurs alloués
pour un fichier
Le facteur de chargement est égal à l’espace occupé par
les enregistrements divisé par la taille des cases allouées. Il
reflète la bonne utilisation de l’espace mémoire. La figure3
montre le taux de chargement moyen des cases allouées
pour un fichier.
Figure 3.
Taux de chargement moyen des cases.
On peut remarquer que le taux de chargement est
toujours supérieur à 50% ce qui s’explique par le
fonctionnement de PBST*. En effet, lorsqu’une case d’un
serveur atteint sa capacité maximale, une nouvelle case
d’un autre serveur est allouée et la moitié de la charge lui
est transmis.
B. Disponibilité
Dans ce test, nous commençons par créer 4 fichiers
avec un paramètre de partitionnement =100. Le fichier1
(respectivement fichier2, fichier3 et fichier4) est distribué
sur 9 serveurs (respectivement 16 serveurs, 22 serveurs et
31 serveurs). Pour chaque fichier créé, on suppose qu’un
coordinateur tombe en panne. A ce moment, un client se
connecte à la grille avec une image vide et essaie d’accéder
à tous les enregistrements du fichier. Nous mesurons le taux
d’informations que ce client peut trouver. (figure4)
Figure 4. Taux d’informations trouvées et perdues en cas de panne.
On remarque que le taux d’informations perdues
diminue si le fichier est distribué sur plusieurs clusters.
Ceci est justifiable car le faite de distribuer les données sur
plusieurs clusters réduit le pourcentage des données
stockées sur le cluster qui contient le coordinateur
endommagé.
V.
CONCLUSION
Nous avons proposé dans cet article un protocole de
distribution de données sur une grille informatique basé sur
PBST*.
Les tests effectués nous ont montré que le croisement
des deux domaines SDDS et "grilles informatiques " peut
être considéré comme un axe de recherche important. Deux
résultats rendent le nouveau système attractif. D’une part, il
assure une répartition équitable des données sur l’ensemble
des serveurs alloués pour un fichier. D’autre part, il assure
la disponibilité de la plupart des données même si un
coordinateur tombe en panne, et ceci sans l’utilisation
d’aucune stratégie de disponibilité des données.
REFERENCES
I.Foster and C.Kesselman, “The Grid: Blueprint for a New
Computing Infrastructure,” Morgan-kaufmann,1999.
[2] R. Buyya and S. Venugopal, “A Gentle Introduction to Grid
Computing and Technologies”, CSI Communications, Vol.29,
Computer Society of India (CSI), Mumbai, India, pp 9-19, 2005.
[3] P. Tadepalli, “Grid-based distributed search structure”, In
Proceedings of the ACM SouthEast Conférnece, Melbourne,
Florida, pp 752-753, 2006.
[4] W. Litwin, M.A. Neimat and D. Schneider, “LH*: Linear Hashing
for Distributed Files”, ACM-SIGMOD International Conference On
management of Data, 1993.
[5] D. Devin, “Design and implementation of DDH: A distributed
dynamic hashing algorithme”, In Proceessing of the 4th Foundation
of Data Ortanization and Algorithms (FODO), 1993.
[6] V. Hilford, F.B. Bastani and B. Cukic, “EH*: Extendible Hashing
distributed”, 1997.
[7] D.E. Zegour and D. Boukhelef, “IH*: Hachage Linéaire
Multidimensionnel Distribué et Scalable”, Conférence Africaine de
Recherche en Informatique, CARI 2002, Yaoundé (Cameroun),
Octobre 2002.
[8] S. Monnet, “Gestion des données dans les grilles de calcul: support
pour la tolérance aux fautes et la cohérence des données”, These de
Doctorat, Université de Rennes1, 2006.
[9] W.Litwin, M.A. Schneider, “RP*: A family of Order-Preserved
Scalable Distributed Data Structure”, 20th International Conference,
On Very Large Data Bases (VLDB), 1994.
[10] B. Kroll and P. Widmayer, “Distributing a Search Tree Among a
Growing”, In ACM-SIGMOD International Conference On
Management of Data, pp 265-276, 1994.
[11] G. Antoniu, L. Bougé and M. Jan. JuxMem : An Adaptive
Supportive Platform for Data Sharing on the Grid, IN Scalable
Computing : Practice and Experience, pp 45-55, September 2005.
[1]