Structures de donnes avances : Range Partionning: RP - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Structures de donnes avances : Range Partionning: RP

Description:

Remarque : les B-arbres ne comportent pas de pointeurs parents. Ces pointeurs sont utilis s pour la redirection des requ tes en cas d'erreur d'adressage. ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 41
Provided by: zeg1
Category:

less

Transcript and Presenter's Notes

Title: Structures de donnes avances : Range Partionning: RP


1
Structures de données avancées Range
Partionning RP
  • D. E
  • ZEGOUR
  • Institut National d Informatique

2
RP
  • Famille des SDDS, appelée RP (Range
    Partitioning) RPN, RPC et RPS
  • Un client RPN envoie ses requêtes aux serveurs
    en utilisant uniquement des messages Multicast.
    Il ne comporte aucune image sur le fichier
    distribué.
  • Un fichier RPC est un fichier RPN avec une
    image construite au niveau de chaque client.
    Cette image permet à un client RPC dutiliser
    des messages unicast lorsquil sadresse à un
    serveur déjà référencé. Le multicast est utilisé
    dans le cas contraire.
  • Un fichier RPS ajoute à RPC un index distribué
    au niveau des serveurs indexant toutes les cases.
    Élimine le multicast.

3
RPN
  • Structure et Évolution du Fichier
  • Un fichier RPN évolue par éclatement de cases (
    comme un B-arbre).
  • Chaque fragment du fichier correspond à une case
    de données, pouvant contenir au maximum b
    enregistrements, et stockée en mémoire centrale
    sur un serveur.
  • Un enregistrement est composé dun champ clé et
    dun ou de plusieurs champs non-clé.
  • Les cases forment une partition sur lensemble
    des clés.
  • Chaque case est associée à un intervalle noté ( ?
    , ?, où ? est appelée la clé minimale de la
    case et ? sa clé maximale.

4
RPN
  • Structure et Évolution du Fichier
  • Un fichier RPN est initialement constitué dune
    case unique qui porte le numéro zéro (case 0),
    avec ? -? et ? ?. Toutes les insertions
    initiales vont à la case 0. Elle est éclatée
    lorsquelle atteint sa capacité maximale b.
  • Léclatement consiste à déplacer, vers un nouveau
    serveur, tous les enregistrements ayant une clé
    appartenant à la moitié supérieure de
    lintervalle de la case. Cet intervalle est
    dabord divisé en deux par la clé du milieu de
    léclatement, notée cm.
  • A lissue de cet éclatement, aucun message de
    mise à jour de la structure du fichier nest
    envoyé aux clients.

5
RPN
  • Évolution dun fichier RPN avec des
    enregistrements de clé alphanumérique et pour b
    4.

a
to the of and
of and a
to the
? - ?
of -?
? of
0
0
1
6
RPN
  • Évolution dun fichier RPN avec des
    enregistrements de clé alphanumérique et pour b
    4.

is
of in and a
to the that
in and a
to the that
of is
of -?
? of
in -?
? of
of in
0
1
0
1
2
7
RPN
  • Évolution dun fichier RPN avec des
    enregistrements de clé alphanumérique et pour b
    4.

for
in i and a
to the that
of is
for and a
to the that
of is
in i
0
1
2
0
1
2
3
in -?
? of
of in
for -?
? of
of in
in for
8
RPN
  • Algorithme déclatement dune case RPN.
  • 1. Déterminer Cm, la clé du milieu des clés de la
    case débordée (serveur) B et de la nouvelle clé,
    cela permet dobtenir g1 et g2.
  • 2. Allocation dun serveur Si
  • 3. Initialiser lintervalle de la case du serveur
    Si
  • ?(Si) ? Cm,
  • ?(Si) ? ?(B)
  • 4. Copier dans Si lensemble des enregistrements
    de g2.
  • 5. Mettre à jour la clé maximale de B
  • ?(B) ? Cm
  • 6. Supprimer les enregistrements de g2 de B

9
RPN
  • Accès au fichier
  • Les clients RPN accèdent au fichier en envoyant
    des requêtes dinsertion, de mise à jour, de
    suppression ou de recherche denregistrements.
  • Ces requêtes sont réparties en plusieurs
    catégories
  • Requête simple
  • Requête à intervalle

10
RPN
  • Requête simple
  • Elle correspond à la recherche, à linsertion, à
    la suppression ou à la mise à jour dun
    enregistrement de clé c donnée.
  • Dans RPN, une requête simple est envoyée à
    laide dun message Multicast. Elle est reçue par
    tous les serveurs.
  • Chaque serveur S, dintervalle (?, ?, procède
    comme suit
  • Si c ?(?, ? alors S exécute la requête, puis
    envoie éventuellement une réponse au client à
    laide dun message Unicast. Cette réponse
    contient le résultat de lexécution de la
    requête( par exemple lenregistrement de clé c
    pour une recherche avec succès )
  • S ignore la requête si c ? (?, ?.

11
RPN
  • Requête à intervalle
  • (Même principe pour les clients RPC et RPS)
  • Il sagit de la recherche de lensemble des
    enregistrements de clés c appartenant à un
    intervalle donné (a, b (a ltb
  • Une telle requête est envoyée à tous les serveurs
    à laide dun message Multicast.
  • Elle est traitée sur chaque serveur dintervalle
    (?, ? tel que (?, ? ? (a, b ? .
  • Les enregistrements sélectionnés sont ensuite
    envoyés au client en parallèle.

12
RPN
  • Terminaison dune requête à intervalle
  • Terminaison déterministe
  • Chaque serveur Si dintervalle (?i, ?i tel que
    (?i, ?i ? (a, b ? envoie une réponse au
    client avec son intervalle (?i, ?i et,
    éventuellement, les enregistrements trouvés.
  • Le client termine la requête avec succès, si
  • (a, b ? ? (?i , ?i

13
RPN
  • Terminaison dune requête à intervalle
  • Terminaison probabiliste
  • Un serveur répond uniquement lorsquil trouve au
    moins un enregistrement ayant une clé dans
    lintervalle de la requête.
  • Le client utilise un time out t pour collecter
    les réponses.
  • Ce time out est réinitialisé après la réception
    de chaque réponse.
  • La requête est terminée lorsque t expire.
  • Ce time out doit être choisi de manière à réduire
    la probabilité de perte de réponses.
  • Ce choix dépend non seulement des performances du
    réseau mais également de la vitesse de traitement
    des serveurs.

14
RPC
  • Structure de limage
  • RPC crée une image du fichier sur chaque client
    pour réduire lusage de messages Multicast.
  • Cette image nest quune collection des
    intervalles et des adresses des différentes cases
    déjà accédées.
  • Elle ne correspond pas forcément à la structure
    exacte de la répartition du fichier sur les
    serveurs.
  • Son rôle est de permettre à chaque client
    dutiliser un message Unicast lorsquil envoie
    une requête simple à une case déjà référencée. Le
    Multicast est utilisé dans le cas contraire.

15
RPC
  • Structure de limage
  • Limage se présente sous forme dune table T de
    couples (A, C), où A est ladresse dune case et
    C sa clé maximale.
  • Elle est ordonnée suivant les différentes valeurs
    de C.
  • Sa structure est semblable à celle dun nud dun
    B-arbre.
  • Ladresse associé à une entrée quelconque i de T
    est notée par A(i), sa clé est notée par C(i).
    Une adresse inconnue est représentée par le
    symbole .
  • Initialement, cest à dire au démarrage dun
    nouveau client, T ne contient que lélément (0,
    ?.
  • Puis, elle évolue en fonctions des IAMs reçus
    suite aux erreurs dadressage.

16
RPC
  • Accès à larticle
  • ( cas de recherche dun enregistrement de clé c
    ( valable pour les mises à jour et insertions )
  • Coté Client
  • Désignons par R(c) la requête correspondant à la
    recherche de la clé c.
  • Le client recherche dabord lentrée i ?T ayant
    la plus petite clé telle que C(i) ?c.
  • Si A(i) ? alors il envoie R(c) par Unicast au
    serveur d'adresse A(i).
  • Sinon R(c) est envoyée à tous les serveurs à
    laide dun message Multicast.

17
RPC
  • Accès à larticle
  • Coté serveur
  • Un serveur qui reçoit R(c) vérifie dabord si c
    appartient à son intervalle.
  • Dans le cas défavorable, R(c) est ignorée si elle
    a été envoyée par Multicast. Sinon, il sagit
    dune erreur dadressage.
  • Le serveur redirige alors la requête par
    Multicast vers les autres serveurs.
  • Le message redirigé contient, en plus de R(c),
    ladresse du serveur et son intervalle.
  • Dans le cas favorable, le serveur exécute R(c),
    puis envoie une réponse au client. Cette réponse
    contient éventuellement lenregistrement de c
    trouvé, ainsi que ladresse et lintervalle du
    serveur.

18
RPC
  • Accès à larticle
  • IAM
  • Toute réponse à une requête envoyée sans erreur
    dadressage contient un IAM noté ( ? , a, ? )
  • L intervalle (? , ? est celui du serveur ayant
    traité la requête
  • a représente son adresse.
  • Une réponse à une requête redirigée comporte deux
    IAMs correspondant au serveur qui a effectué la
    redirection et celui qui la traitée.
  • Dans les deux cas, le client corrige son image à
    laide de chaque IAM, selon lAlgorithme de mise
    à jour de limage.

19
RPC
  • Mise à jour de lImage
  • ( En entrée (?, a, ?) )
  • 1. S'il n'existe pas dans T une entrée i de
    valeur (a, C) telle que C(i) ? et ? ? - ?,
    alors insérer (, ? ) dans T.
  • 2. S'il existe dans T une entrée i de valeur
    (a, C) telle C(i) gt ?, alors
  • a) Si C(i) ? alors Remplacer lentrée i par
    (a, ? ) puis insérer le couple (, ?) dans T.
  • b)Sinon, si C(i) lt ? alors Remplacer lentrée i
    par (a, ?).
  • 3. S'il existe dans T une entrée i de valeur
    (, ? ) alors Remplacer lentrée i par (a, ?).
  • 4. S'il n'existe pas dans T une entrée i de
    valeur (a, ?) alors insérer (a, ? ) dans T.

20
RPC
  • Évolution de limage dun client RPC.

0 ?
I A M
(-?, for, 0)
0 for ? ?
Règle 2a)
0 for ? in ? ?
(in, of, 2)
Règle 1
0 for ? in ? 2 of ? ?
Règle 4
Table T
21
RPC
  • Évolution de limage dun client RPC.

I A M
0 for ? in 2 of 1?
(of, ?, 1)
Règle 3
0 for ? 3 in ? 2 of ? 1 ?
Règle 3
(for, in, 3)
Table T
22
RPS
  • Concepts
  • RP S ajoute à RP C un index réparti au niveau
    de serveurs spécifiques appelés serveurs dindex.
  • Un client RPS a la même table quun client RPC
    ( Sans ).
  • Cet index représente une image de la structure
    globale de la répartition du fichier distribué.
  • Il est transparent aux clients.
  • Objectifs
  • Éliminer lusage du Multicast pour envoyer les
    requêtes simples
  • Accélérer la convergence de limage du client
    pour réduire le nombre derreur dadressage.

23
RPS
  • Structure de lIndex Réparti
  • Lindex RP S a une structure semblable à celle
    dun fichier en arbre-B distribué.
  • Les serveurs dindex correspondent aux nuds non
    terminaux de larbre, les cases (serveurs) de
    données représentent les feuilles.

24
RPS
  • Structure de lIndex Réparti
  • Chaque serveur dindex peut contenir au maximum m
    (m gtgt1) couples (A, C) ordonnés ( comme dans
    limage dun client).
  • A représente un pointeur vers le nud de niveau
    inférieur, de clé maximale C.
  • En fait, A correspond à ladresse dun serveur
    dindex ou dune case si le nud est une feuille.
  • Les clés C1 et C2 de deux couples successifs (A1,
    C1) et (A2, C2) dun serveur dindex définissent
    l'intervalle du serveur dindex ou de la case
    référencée par le pointeur médian A2.

25
RPS
  • Structure de lIndex Réparti
  • Chaque serveur dindex est muni dun en-tête
    contenant son intervalle et un pointeur vers son
    nud parent.
  • Chaque case (serveur) de données est muni dun
    en-tête contenant son intervalle et un pointeur
    vers le nud feuille dindex le plus à gauche.
  • Remarque les B-arbres ne comportent pas de
    pointeurs parents.
  • Ces pointeurs sont utilisés pour la redirection
    des requêtes en cas derreur dadressage.

26
RPS Exemple à 1 niveau dindex

a
-? ? ?? 0 for 3 in 2 of 1
for and a
to the that
of It is
in i
a for -?
  • a
  • of

a of in
a in for
0
1
2
3
27
RPS Exemple à 2 niveaux dindex
  • -? ? ?a in b

c
a
b
-? in c ?0 for 3
in ? c?2 of 1 these 4
for and a
these the that
of It is
in i
to this
a for -?
  • a
  • these
  • of

a of in
a in for
a ? these
0
4
3
2
1
28
RPS
  • Évolution du fichier
  • Lalgorithme déclatement de RPS est une
    extension de celui de RPC.
  • Il exige une mise à jour de lindex, comme dans
    un arbre-B, à chaque fois quune nouvelle case
    est créée.

29
RPS
  • Évolution du fichier
  • 1. La case 0 est éclatée comme dans RP N. Il en
    résulte la création du premier nud a qui
    représente la racine d'un arbre-B à un niveau
    dindex, dintervalle (- ?, ?)et de pointeur
    père .
  • 2. Le nud a est créé avec le triplet (0, Cm, 1).
    Cm clé du milieu.
  • 3. Tout autre éclatement entraîne l'insertion
    dun nouveau couple (Cm,r) dans a, où r est
    l'adresse de la nouvelle case. Le pointeur père
    de la nouvelle case est ensuite relié à a.

30
RPS
  • Évolution du fichier
  • 4.Quand le nud a devient plein, il est divisé en
    2 donnant naissance à un nud frère b et un
    nouveau nud c devenant ainsi la nouvelle racine
    d'un arbre-B à 2 niveaux dindex.
  • 5. Le nud c est créé avec lintervalle (- ?, ?)
    et de pointeur père . Cest le père des nuds a
    et b.
  • 6. Etc.

31
RPS
  • Accès au fichier (Algorithme de traitement dune
    requête simple dans RP S)
  • Un client qui désire envoyer une requête simple
    recherche d'abord l'adresse de la case à partir
    de son image.
  • Soit S le serveur possédant la case dintervalle
    (? , ? .
  • S exécute les opérations suivantes lorsquil
    reçoit une requête avec une clé c
  • 1. Si c ? (? , ? , alors S exécute la requête.
  • 2. Sinon, S redirige la requête vers son nud
    père P.
  • 3. Si c ?(? p, ? p de P, P alors envoie la
    requête à la case contenant l'enregistrement de
    clé c.
  • 4. Sinon, P redirige la requête au niveau
    supérieur.

32
RPS
  • Accès au fichier (Algorithme de traitement dune
    requête simple dans RP S)
  • 5. Ce processus est répété jusqu'à ce qu'une
    feuille ou la racine soit atteinte.
  • 6. La feuille finale renvoie un IAM au client
    avec la trace du chemin parcouru par la requête
    dans l'arbre.
  • La structure représentant ce chemin est appelée
    IA-Tree.

33
RPS
  • Accès au fichier (Algorithme de traitement dune
    requête simple dans RP S)
  • Remarque
  • Suivant létat de son image, le client peut
    envoyer directement une requête à un serveur
    dindex au lieu dune case (serveur de données).
  • Cela est considéré comme une erreur dadressage.
  • Dans ce cas, le serveur dindex redirige la
    requête vers la bonne branche de larbre
    distribué, pour quelle soit acheminée vers la
    case correcte.

34
RPS
  • Requête par intervalle
  • Peut être envoyée à laide dun message
    Multicast, comme dans RP N et RP C.
  • Il est aussi possible dutiliser plusieurs
    messages Unicast. Dans ce cas, le client (selon
    sa table) envoie la requête par Unicast à chaque
    case du fichier, dintervalle I, tel que I ?
    I ?, où I est lintervalle de la requête.
  • Chaque message contient lintervalle qui est
    supposé être celui du
  • serveur cible.
  • A la réception de ce message, chaque serveur
    cible exécute lAlgorithme de traitement des
    requêtes par intervalle.

35
RPS
  • Requête par intervalle ( Algorithme de traitement
    dune requête par intervalle dans RP S )
  • Soient S un serveur cible, IS son intervalle et
    IS lintervalle correspondant dans limage du
    client.
  • 1. Si IS IS, alors S traite la requête, puis
    envoie une réponse au client, avec son intervalle
    IS au moins, et éventuellement avec les données
    trouvées.
  • 2. IS ? IS, alors S traite la requête uniquement
    sur son intervalle, puis envoie une réponse au
    client, avec son intervalle IS au moins, et
    éventuellement avec les données trouvées.
    Ensuite, il redirige la requête avec le reste de
    lintervalle vers son nud parent p.

36
RPS
  • Requête par intervalle ( Algorithme de traitement
    dune requête par intervalle dans RP S )
  • 3. p redirige la requête vers les cases (serveurs
    de données) qui recommencent la procédure à
    partir de 1
  • Chaque case qui répond envoie en même temps son
    intervalle ( pour les ajustements et dans le cas
    dune terminaison déterministe)
  • Le client collecte alors les réponses pour
    terminer la requête comme dans RP N.

37
RPS
  • Algorithme de mise à jour de limage dun client
    RP S.
  • Soit T la table représentant l'image dun client
    comme dans RP C. Notons par (a, s) un élément de
    T où a est un pointeur et s une clé.
  • Cet algorithme est exécuté pour chaque nud n de
    l'IA-Tree et pour chaque (a, s) de n de bas en
    haut et niveau par niveau.

38
RPS
  • Algorithme de mise à jour de limage dun client
    RP S.
  • Pour chaque nud feuille n (index) de lIA-tree
    et pour chaque couple (a,s) ? n, modifier T
    uniquement dans les cas suivants
  • Si s ?T, ajouter (a, s) à T en respectant l'ordre
    de rangement.
  • Sinon,
  • si ?(a, s') ? T avec s'?s, alors s' ? s
    Modification de la borne supérieure de
    lintervalle d'une case déjà enregistrée dans
    limage
  • Si non, si ?(a', s) ? T avec a' ? a, alors a ? a
    Modification de l'adresse d'une case déjà
    enregistrée dans limage
  • ? Transforme les adresses de nuds en adresses de
    cases.

39
RPS
  • Algorithme de mise à jour de limage dun client
    RP S.
  • Pour chaque (a, s) d'un nud non feuille n
    (index) de IA-tree , modifier T uniquement dans
    les cas suivants
  • Si s ? T, alors ajouter (a, s) à T
  • Si ?(a',s) ? T avec a' ? a et s ? (n) ? ? ,
    alors
  • Soient s' le prédécesseur de s dans n, s'' le
    prédécesseur de s dans T
  • Si s'' ? s', alors a' ? a.

40
RPS Conclusion
  • Facteur de chargement le même pour les 3
    méthodes(70 pour les insertions aléatoires)
  • En terme de messages
  • RpN meilleur que RpC meilleur que RpS
  • En terme de convergence des images des clients
  • RpS meilleur que RpC
  • Cest Rps qui exploite lordre. Schéma
    déterministe (fonctionne sans multicast)
  • Inconvénient exige beaucoup de message lors des
    opérations de recherche, insertion, ajustement,
    etc
Write a Comment
User Comments (0)
About PowerShow.com