Scalable Distributed Compact Trie Hashing - PowerPoint PPT Presentation

1 / 75
About This Presentation
Title:

Scalable Distributed Compact Trie Hashing

Description:

Le hachage digital est l'une des m thodes les plus rapides pour l'acc s au ... La technique utilise une fonction de hachage variable repr sent e par un arbre ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 76
Provided by: zeg1
Category:

less

Transcript and Presenter's Notes

Title: Scalable Distributed Compact Trie Hashing


1
Scalable Distributed Compact Trie Hashing
  • Proposé par D.E ZEGOUR

2
Trie hashing
  • Le hachage digital est l'une des méthodes les
    plus rapides pour l'accès au fichiers monoclé,
    ordonnés et dynamiques.
  • La technique utilise une fonction de hachage
    variable représentée par un arbre digital qui
    pousse et se rétracte en fonction des insertions
    et suppressions.
  • Caractéristiques principales
  • l'arbre réside en mémoire pendant l'exploitation
    du fichier.
  • 6 Octets / case
  • Un accès au plus pour retrouver un article

3
Compact trie hashing
  • Plusieurs manières de représenter la fonction
    d'accès en mémoire.
  • Objectifs doubler les fichiers adressés pour le
    même espace mémoire utilisé par la
    représentation standard.
  • L'idée représenter les liens de manière
    implicite au détriment d'algorithmes de
    maintenance légèrement plus long que ceux de la
    représentation standard.
  • Consommation 3 octets par case du fichier.
  • ? Ce qui permet d'adresser des millions
    d'articles avec un espace mémoire dérisoire.
  • Pour un environnement distribué cette option est
    sans doute plus intéressante notamment pour le
    transfert des parties de l'arbre d'un site à un
    autre.

4
Distributed compact trie hashing
  • Nous proposons une distribution de CTH
    relativement aux propriétés des Sdds, c'est à
    dire en respectant les contraintes suivantes
  •  
  • Distribution des cases du fichier sur les
    serveurs( à raison d'un serveur par case)
  • Pas de site maître
  • Aucun dialogue entre les clients.

5
Plan à suivre
  • Compact trie hashing
  • Distribution de la méthode sur plusieurs sites.
  • Algorithmes de recherche et insertion
  • Illustration de la méthode
  • Variantes
  • Conclusion

6
Trie hashingExemple Arbre de Litwin
O,0
I, 0
T, 0
_, 1
4
1
2
3
5
-1
-1
4
2
3
O, 0
T, 0
I,
_, 1
I, 0
-2
1
-3
5
0
1
2
3
7
Compact trie hashingExemple Nouvel arbre


T
O
I
_
2
1
4
3
5
5
T

1
2
O
3
_
4
I
8
Compact trie hashing Principe
  • L'arbre contient toutes les séquences de
    division ordonnées sans la duplication des digits
    commun.
  • Tous les premiers digits des séquences de
    division sont placés de manière ordonnée de
    gauche à droite dans le niveau 1 de l'arbre.
  • Pour chaque nœud du niveau 1 tous les seconds
    digits sont placés au niveau 2 de manière
    ordonnée de gauche à droite. et ainsi de suite.
  •  
  • Les cases sont au niveau des feuilles.
  • La concaténation des digits sur une branche de
    l'arbre représente la clé maximale de la case
    figurant dans la feuille correspondante.
  •  

9
Compact trie hashing Principe
  • La représentation correspond ainsi au préordre
    ( n T1 T2 ) sur ce nouvel arbre.
  •  
  • Dans cette représentation
  • l'arbre digital est une suite de nœuds internes
    et externes.
  • Un nœud interne est un digit.
  • Un nœud externe est un pointeur vers une case du
    fichier.

10
Compact trie hashingExpansion de larbre
  • Soit m la case à éclater.
  • Former la séquence ordonnée des clés de cette
    case augmentée de la clé qui a provoqué la
    collision.
  • Soit C' la clé du milieu et C'' la dernière.
  • Déterminer la plus petite séquence Seq de digits
    dans C' qui permet de distinguer C' de C''. Soit
    C'1C'2.....C'K cette séquence.
  • Soit I les premiers digits de cette séquence qui
    existent déjà dans l'arbre.

11
Compact trie hashingExpansion de larbre
  • Expansion de l'arbre
  •  
  • Soit Ind_d l'indice dans larbre du digit en
    fond de pile (premier digit de la clé maximale
    cm de la case surchargée.)
  • Ind_m l'indice de la case surchargée
  •  
  • Si I ltgt 0
  • Si Cm préfixe de Seq
  • Ind_d Ind_m
  • Sinon
  • Ind_d l'indice du premier digit de
    Seq différent dans Cm
  • Fsi
  • Fsi
  •  

12
Compact trie hashingExpansion de larbre
  • Cas k- I 1
  • insérer à la position Ind_d
  • C'k m d1 d2 .....M
  •  
  • Cas k- I gt 1
  • Insérer à la position Ind_d
  • C'i1 C'i2 .....C'k m M Nil2 Nil3
    .....d1d2....Nil1
  •  
  • Dans le premier cas deux nœuds sont rajoutés,
    dans le second cas 2( K - I) nœuds.
  • M étant la prochaine case à allouer au fichier.

13
Compact trie hashingRecherche
  • L'algorithme de recherche parcourt la forme
    linéaire de l'arbre et utilise une pile.
  • Arbre I désigne la case recherchée.
  • I désigne l'indice de la case dans l'arbre
  • ( P ) désigne le contenu de la pile en commençant
    par le fond si la pile n'est pas vide, ' sinon.
  • ( P ) désigne la clé maximale de la case trouvée.

14
Compact trie hashingRecherche
  • Init( P ) I 1 Trouv Faux
  • Tq Non Trouv
  • Si Interne(Arbre I )
  • Empiler(P, ( Arbre I , I ) )
  • I I 1
  • Sinon
  • Si C lt ( P )
  • Trouv Vrai
  • Sinon
  • Depiler(P, (V, J) )
  • I I 1
  • Fsi
  • Fsi
  • Ftq

15
Compact trie hashingMécanisme de construction
  • Insertion de la séquence
  • a ce dx ef h x y kx fe hx hy yya yyb
    yyc
  •  
  • Capacité B 4
  • Au départ l'arbre est 0
  • désigne la clé maximale.
  •  
  •  

16
Compact trie hashingMécanisme de construction
h
  • 1.   a ce dx ef sont insérées dans la case 0.
  • L'arbre 0

a ce dx ef
0
17
Compact trie hashingMécanisme de construction
  • 2.   Insertion de h
  • L'arbre d 0 1

Collision sur case 0 Clé maximale Séquence
de division d K 1 I 0
a ce dx
ef h
0
1
18
Compact trie hashingMécanisme de construction
kx
  • 3.   Insertion de x y
  • L'arbre d 0 1

a ce dx
ef h x y
0
1
19
Compact trie hashingMécanisme de construction
  • 4.   Insertion de kx
  • L'arbre d 0 k 1 2

Collision sur case 1 Clé maximale Séquence
de division k K 1 I 0
a ce dx
ef h kx
x y
0
1
2
20
Compact trie hashingMécanisme de construction
hx
  • 5.   Insertion de fe
  • L'arbre d 0 k 1 2

a ce dx
ef fe h kx
x y
0
1
2
21
Compact trie hashingMécanisme de construction
by
  • 6.   Insertion de hx
  • L'arbre d 0 h 1 k 3 2

Collision sur case 1 Clé maximale
k Séquence de division h K 1 I 0
a ce dx
ef fe h hx
x y
kx
0
1
2
3
22
Compact trie hashingMécanisme de construction
  • 7.   Insertion de hy
  • L'arbre d 0 h _ 1 4 k 3 2

Collision sur case 1 Clé maximale h Séquence
de division h_ K 2 I 1
a ce dx
ef fe h
x y
kx
hx hy
0
1
2
3
4
23
Compact trie hashingMécanisme de construction
yyc
  • 8.   Insertion de yya yyb
  • L'arbre d 0 h _ 1 4 k 3 2

a ce dx
ef fe h
x y yya yyb
kx
hx hy
0
1
2
3
4
24
Compact trie hashingMécanisme de construction
  • 9.   Insertion de yyc
  • L'arbre d 0 h _ 1 4 k 3 y y a 2 5 Nil Nil

Collision sur case 2 Clé maximale Séquence
de division yya K 3 I 0
a ce dx
ef fe h
x y yya
kx
hx hy
yyb yyc
0
1
2
3
4
5
25
Compact trie hashingSuppression
  • Le processus de fusion est déclenché quand la
    taille de la case devient inférieure à B/2 lors
    d'une suppression ( B capacité de la case )
  • La fusion aura lieu alors si la somme des clés
    contenues dans cette case et celles contenues
    dans la case sœur est lt B.
  • L'arbre est alors réduit d'un nœud interne et
    d'un nœud externe.
  • Le processus peut continuer en cascade.
  •  

26
Compact trie hashingSuppression
  • Soit ind_m l'indice dans l'arbre de la case (soit
    M) contenant la clé à supprimer. On peut avoir
    les cas suivants
  • ... d M M1.....
  • ....d M1 M ....
  • ....d M d1 M1 ....
  • ....d1 M1 d M ....
  • C'est à dire respectivement
  • Interne(Ind_m - 1) et Externe(Ind_m 1)
  • Externe(Ind_m - 1) et Interne(Ind_m - 2)
  • Interne(ind_m - 1) et Interne(Ind_m 1) et
    Externe(Ind_m 2) avec Ind_m 2 lt Nbrnoeud
  • Interne(Ind_m - 1) et Interne(Ind_m - 3) et
    Externe( Ind_m - 2)

27
Compact trie hashingSuppression
  • Nil est considéré comme un nœud externe. Nbrnoeud
    est l'indice du dernier nœud dans l'arbre.
  •  
  • Ca se réduit respectivement comme suit
  • ... M .... ou ... M1 ... si M devient Nil
  • ... M1 .... ou ... M ... si M1 est Nil
  • ... d1 M1....
  • ... d M ....

28
Compact trie hashingRecherche séquentielle
  • Les cases sont ordonnées de la gauche vers la
    droite. Dans l'exemple 0 1 4 3 2 5.
  •  
  •  
  • Pour I 1, Nbrnoeud
  • Si Externe ( I ) Et Non Nil
  • Imprimer la case Arbre I
  • Fsi
  • Fpour

29
Compact trie hashingPerformances
  • Algorithmes en mémoire
  • Recherche N/2 en moyenne
  • Insertion N/2 décalages en moyenne
  • Encombrement 3 octets / case en moyenne.
  • algorithmes sur disque ( même performance que
    TH)
  • 1 accès au plus pour retrouver un article

30
Scalable Distributed Compact trie
hashingConcepts
  • Au niveau de chaque client il y a un arbre
    digital partiel à partir duquel toute opération
    sur le fichier est entamée.
  •  
  • Tout client peut rentrer en scène à tout moment
    avec un arbre vide ( 0 )
  •  
  • Pendant la phase de recherche, commune à toutes
    les opérations, émanant d'un client l'arbre est
    mis à jour progressivement jusqu'à l'obtention
    de l'arbre réel.(son mûrissement) . ( Processus
    décrit plus loin )
  •  

31
Distributed Compact trie hashingConcepts
  • Au niveau de chaque serveur il y a
  • un arbre digital partiel
  • une case contenant les articles du fichier
  • un intervalle Min, Sup
  •  
  • L'arbre digital au niveau du serveur est créé ou
    étendu à chaque division d'un serveur. Il garde
    ainsi la trace de tous les éclatements sur ce
    serveur.
  •  
  • A toute case est associé un intervalle contenant
    toutes les clés possibles pouvant être contenues
    dans cette case.
  • Cet intervalle est nécessaire lors de la phase de
    recherche puisqu'il en constitue le critère
    d'arrêt.

32
Distributed Compact trie hashingConcepts
  • Quand une case éclate , il y a
  • extension de larbre du serveur
  • Initialisation dun nouveau serveur
  • ( Le processus d'éclatement est donné plus loin )
  • Les intervalles des deux serveurs sont aussi mis
    à jour.
  •  
  • Les arbres digitaux sont représentés en forme
    séquentielle préordre sur le graphe G.
  •  

33
Distributed Compact trie hashingConcepts
  • Initialisation du système
  • Initialiser le serveur 0 avec
  • Case
  • Intervalle gtPetite ltGrande
  • Arbre 0
  •  
  • Nous supposons que toutes les clés sont
    strictement supérieures à une clé (_____) et
    inférieures ou égales à une clé ().
  • Petite '______'
  • Grande ''
  •  
  • Les arbres au niveau des clients sont
    initialisés 0.
  •  

34
Distributed Compact trie hashingConcepts
  • L'expansion du fichier se fait à travers les
    collisions. A chaque collision il y a
    distribution du fichier (du serveur éclaté) sur
    un serveur logique.
  •  
  • Le nombre de serveurs est conceptuellement
    infini.
  •  
  • Le serveur peut être déterminé de manière
    statique ou dynamique. On peut avoir plusieurs
    serveurs logiques pour le même serveur physique.

35
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Appliquer CTH sur l'arbre du client. soit I le
    serveur sélectionné.
  • (ii) Cas I Nil
  • Envoi dun message à tous les serveurs Où
    suis-je?
  • ( soit m ce serveur qui existe toujours)
  • Substituer m à Nil dans larbre du client.
  • I m
  • Stop

36
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • (iii) Cas I ltgt Nil
  • Aller au serveur I . Si clé dans l'intervalle de
    I Arrêt avec succès
  • (iv) Si arbre non vide modifier larbre du
    client en fonction de larbre du serveur
    (Algorithme A) puis reprendre à partir de (i)
  • (v) Si arbre vide au niveau de I, ou I
    précédent serveur ( c'est une impasse )
  • - Envoyer un message à tous les serveurs pour
    déterminer le nouveau serveur I
  • - Modifier larbre du client selon I et la clé
    maximale du serveur I (Algorithme B)
  • - Arrêt
  •  

37
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Cas des nœuds Nil
  •  
  • Quand on rencontre Nil dans larbre du client,
    On envoie un message à tous les serveurs pour
    déterminer celui qui pourrait contenir la clé
    recherchée. On remplace alors Nil par ce serveur.
    Conséquence lalgorithme de transformation
    Client, Clé) ? Server ne retourne jamais NIL.
  • Cas dun arbre vide
  •  
  • Cest un arbre non encore éclaté, cad avec
    seulement 2 noeuds. Exemple 3.

38
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Cas où I précédent serveur
  •  
  • Supposons qu'un client avec l'arbre c 0 e t 3 5
    2 recherche la cle 'h' et supposons que le
    serveur 2 contient l'arbre w 2 7 avec
    l'intervalle gts, ltw.
  • Le module de recherche sélectionne le serveur 2.
    Comme 'h' n'est pas dans l'intervalle de ce
    serveur, il y a remplacement dans l'arbre du
    client, ce qui donne
  • C 0 e t 3 5 w 2 7.
  • La ré application de CTH sur 'h' nous redonne 2
    et le processus de recherche rentre dans une
    boucle infinie.

39
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Algorithme A modifier larbre du client en
    fonction de larbre du serveur
  • Soit Cm C0C1... la clé maximale du serveur
    recherchée (m)
  • ind_m son indice dans larbre
  • ind_d indice de C0, cad le premier lindice du
    premier digit de la séquence
  •  
  • (i) Inserer à la position ind_d toutes les
    sequences du serveur strictement inférieures à
    C0.
  • Ind_d et ind_m sont modifiés en conséquence. Si
    N est le nombre de noeuds de toutes les
    sequences, alors
  • ind_d ind_d N et
  • ind_m ind_m N.
  •  

40
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • (ii) Cas où C0 existe dans larbre du serveur
    comme un début de sequence
  •  a) determiner dans larbre du client le nombre
    de noeuds internes qui precedent ind_m (indice du
    serveur trouvé). Soit Ni ce nombre.
  • Soit Ne length(cm) - Ni, le nombre de
    digits à ignorer dans le serveur
  •  b) determiner dans larbre du serveur toutes les
    séquences inférieures ou égales à la clé maximale
    Cm
  • Soit L la longueur des sequences trouvées, Cm1
    la dernière sequence.
  •  

41
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • N L Ne est le nombre de noeuds à copier
  • dif max(0, Length(Cm) - Length(Cm1))
  • NR Ni 1 dif est le nombre de noeuds
    existant dans larbre du client
  • Si N - NR gt 0, (N-Nr) represente le nombre de
    noeuds effectifs à rajouter comme il existe dèjà
    Nr.
  • Si N - NR lt 0 , -(N-Nr) represente le nombre de
    noeuds effectifs à éliminer.
  •  
  • (iii) Cas où C0 n existe pas dans larbre du
    serveur
  •  
  • determiner le prochain serveur dans larbre du
    serveur , soit e, puis remplacer m par e.

42
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemple 1
  •  
  • Client f c 0 9 i 7 k 5 .....
  • Serveur d 0 e 17 f c 13 9 i 7 .....
  • Supposons quun Client recherche la clé fcd.
    Lintervalle du serveur 0 ninclut pas la clé
    recherchée. Il complète son arbre comme suit
  • Au niveu client on a m 0, ind_d 1, ind_m
    3, Clé maximale 'fc...'
  • (i) Les sequences strictement inférieures à 'f'
    sont d 0 et e 17. Elles sont insérées à la
    position 1. Nous obtenons larbre d 0 e 17 f c
    0 9 i 7 k 5 .....
  • (ii)Le préfixe fc figure dans larbre du
    serveur. Nous remplacons donc dans larbre du
    client 0 by 13. Ce qui donne larbre final d
    0 e 17 f c 13 9 i 7 k 5 ...
  •  

43
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemple 2
  • Client h _ 24 11 ....
  • Serveur h m 11 26
  • Supposons que m 11, clé maximale 'h..'
  • (ii) Le préfixe est 'h'. Nous remplaçons dans
    larbre du client 11 par la partie manquante de
    la séquence associée à h dans le serveur . Ce
    qui donne comme arbre final au niveau du client
    h _ 24 m 11 26.
  •  

44
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemple 3 On veut par exemple rechercher la
    'th' à partir dun client ayant pour arbre f 0
    h 6 l 3 t 2 w 1 4
  • CTH nous renvoie la valeur 2.
  • Au serveur 2, on a larbre o 2 9
  • Si 'th' nappartient pas à lintervalle du
    serveur 2, on applique lalgorithme A comme suit
  • Sequence au niveau client t 9
  • Sequence au niveau serveur o 2
  • (i) La sequence strictement inférieure à 't' est
    o 2. Elle est insérée à la position 6. Nous
    obtenons dabord larbre f 0 h 6 l 3 o 2 t 2 w
    1 4.
  • Nous sommes dans le cas (iii) de lalgorithme A,
    cad le cas où C0 nexiste dans larbre du
    serveur
  • Comme le prochain serveur dans larbre du serveur
    est 9, larbre du client devient finalement f 0
    h 6 l 3 o 2 t 9 w 1 4

45
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme A
  •  
  • Client  j 3
  • Serveur  j i 3 k 89 r 53 43
  • Cm j
  • Cm1 ji, jk, jr, j
  • ? Client  j i 3 k 89 r 53 43
  •  
  • Client  m _ 56 l 38 t 25 50
  • Serveur  m t b 25 83 50 Nil
  • Cm mt
  • Cm1 mtb, mt
  • ? Client  m _ 56 l 38 t b 25 83 50
  •  

46
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme A
  •  
  • Client  p h i 32 25 20
  • Serveur  p f 32 85 Nil
  • Cm phi
  • Cm1 pf
  • ? Client  p h 32 20
  •  
  • Client  d 7
  • Serveur  d h 7 p 52 37 Nil
  • Cm d
  • Cm1 dh, dp, d
  • ? Client  d h 7 p 52 37
  •  

47
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme A
  •  
  • Client  m 14 ..
  • Serveur  m _ 14 q 38 25
  • Cm m
  • Cm1 m_, mq, m
  • ? Client  m _ 14 q 38 25
  •  
  • Client  i 8
  • Serveur  i f 8 k 64 36 Nil
  • Cm i
  • Cm1 if, ik, i
  • ? Client  i f 8 k 64 36
  •  

48
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme A
  •  
  • Client  t m 16 29
  • Serveur  t f 16 m 27 29 Nil
  • Cm tm
  • Cm1 tf, tm
  • ? Client  t f 16 m 67 29
  •  

49
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Algorithm B Modifier larbre du client selon I
    et la clé maximale Cmsup du serveur I
  • (i) determiner le nombre de noeuds internes qui
    prècèdent Ind_m. Soit Ni ce nombre.
  • Le nombre de noeuds à ignorer de Cmsup est
  • Ne ngth(cm) - Ni
  •  (ii) L 0
  • Si Ni ltgt 0, determiner le nombre de digits
    communs, soit L, dans Cmsup à partir de Ne 1 et
    dans larbre du client commençant à la position
    ind_m Ni.
  • Le nombre de noeuds à créer est N 2
    (length (cmsup) - (Ne L))
  •  (iii) inserer à la position Ind_m - Ni L,
    les digits manquants CmsupNe 1 L ,
    CmsupNe 1 L 1 ... Il existe
    (length(cmsup) - (NeL).
  • Suivi par M, suivi par (length(cmsup) - (NeL)
    1 noeuds Nil.

50
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme B
  •  
  • Client avant o e 24 h 69 r 18 66 .
  • D0 o
  • M 18
  • Multicast 53 Bs oj
  • Client après o e 24 h 69 j 53 r 18 66 ...
  •  
  • Client avant m b 50 16 n 12
  • D0 m
  • M 16
  • Multicast 38 Bs mk
  • Client après m b 50 k 38 16 n 12 ...
  •  

51
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme B
  •  
  • Client avant h c 39 m 8 29 i
  • D0 h
  • M 8
  • Multicast 55 Bs hi
  • Client après h c 39 i 55 m 8 29 i ...
  •  
  • Client avant h d 34 n 29 w a 17 79 76 i
  • D0 h
  • M 17
  • Multicast 54 Bs hq
  • Client après h d 34 n 29 q 54 w a 17 79 76 i
  •  
  •  

52
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme B
  •  
  • Client avant j a 3 e 63 p 40 70 k
  • D0 j
  • M 40
  • Multicast 111 Bs jk
  • Client après j a 3 e 63 k 111 p 40 70 k
  •  
  •  Client avant x h 46 t 35 25 .
  • D0 x
  • M 25
  • Multicast 78 Bs xv
  • Client après ... x h 46 t 35 v 78 25 .
  •  

53
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme B
  •  
  • Client avant x 25
  • D0 x
  • M 25
  • Multicast 78 Bs xv
  • Client après x v 78 25.
  •  
  • Client avant j g 2 i 48 u 46 70 .
  • D0 j
  • M 46
  • Multicast 102 Bs jk
  • Client après j g 2 i 48 k 102 u 46 70
  •  
  •  
  •  

54
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Exemples version1 / Algorithme B
  •  
  • Client avant 21
  • D0
  • M 21
  • Multicast 13 Bs y_
  • Client après y _ 13 Nil 21
  •  

55
Distributed Compact trie hashing Transformation
(Client, Clé) ? Serveur
  • Rafinement de lalgorithme de transformation
  •  
  • Il est probable quaprès plusieurs recherches,
    que la partie de larbre à copier existe déjà
    dans larbre du serveur.
  • Afin daméliorer lalgorithme de transformation,
    nous devons détecter cette situation pour ne pas
    entreprendre la copie.
  • Létape (v) de lalgorithme est modifié comme
    suit
  •  
  • (v) Si arbre non vide alors determiner la partie
    de larbre du serveur à copier dans larbre du
    client.
  • Si Cette partie nexiste pas, la recopier et
    recommencer à partie de (i) sinon recommencer à
    partir de (iv).
  •  

56
Distributed Compact trie hashing Recherche /
Insertion
  • (i)Si x n'est pas dans la case et case non pleine
    insérer tout simplement x dans la case et
    l'algorithme se termine.
  •  
  • (ii) Si x n'est pas dans la case et celle-ci est
    pleine il y a collision.
  • Éclater uniquement l'arbre du serveur.

57
Distributed Compact trie hashing
Recherche/Insertion
  • Processus d'éclatement
  •  
  • Former la séquence et déterminer la séquence de
    division Seq
  • Éclater Case(i) en 2 selon Seq
  • l'ancien serveur I contient les clés lt Seq
  • le nouveau serveur, soit J, contient le reste
  • Int( I ) ? gtInf(int( I )) , ltSeq
  • Int( J ) ? gtSeq , ltSup(int( J ))
  •  
  • Modifier l'arbre par l'ajout des nœuds

58
Distributed Compact trie hashing
Recherche/Insertion
  • Expansion du serveur
  •  
  • En entrée
  • Cle, Seq, K, C', M ( envoyé par le client)
  •  
  • Re appliquer CTH sur l'arbre du serveur ? clé
    maximale Cm
  • A partir de Cm et Seq on détermine le nombre I
    de digits qui existent déjà dans l'arbre du
    serveur.
  •  
  • Étendre l'arbre du serveur en utilisant les
    autres paramètres
  • ( C', K et M).

59
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
  • Prenons capacité d'une case 4
  • Et insérons la séquence suivante des 25 clés par
    les clients correspondants
  •  
  • (1 js), (1 hw), (3 c), (2 gwmr), (3 g), (2 km),
    (4 zur), (1 ewg),
  • (3 lewhv), (2 nrq), (3 mf), (4 pem), (4 rl), (2
    bqyg), (3 v), (1 j),
  • (2 qcm), (4 czxav), (2 lhgd), (3 z), (1 lrz), (3
    kiyfg), (4 pbtpr),
  • (3 hpqtp), (4 h)
  •  
  • Au départ chaque client a l'arbre 0
  •  
  • On donne d'abord les 10 premières avec plus de
    détails, ensuite l'état final au niveau des
    clients et des serveurs.

60
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client3 0
Client2 0
c
gwmr
Is hw
0
Is hw gwmr c
0
,
61
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client3 0
Client2 0
g
  • Éclatement du serveur 0
  • Modification de l'arbre dans le serveur
  • éclaté 0

g01
1
g gwmr c
Is hw
0
1
,g
g,
62
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client3 0
Client2 g 0 1

km
  • Application de CTH sur le client 2
  • Modification de larbre du client
  • Application de CTH sur le nouvel arbre du client
    2
  • Clé insérée dans le serveur 1

g01
1
g gwmr c
Is hw km
0
1
,g
g,
63
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client2 g 0 1
Client3 0
Client4 g 0 1

zur
  • Application de CTH sur le client 4
  • Modification de larbre du client
  • Application de CTH sur le nouvel arbre du client
    4
  • Clé insérée dans le serveur 1

g01
1
g gwmr c
Is hw km zur
0
1
,g
g,
64
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client2 g 0 1
Client3 0
Client4 g 0 1

ewg
  • Application de CTH sur le client 1
  • Clé insérée dans le serveur 0

g01
1
g gwmr c ewg
Is hw km zur
0
1
,g
g,
65
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client2 g 0 1
Client3 g 0 1
Client4 g 0 1

lewhv
  • Application de TH sur le client 3
  • Modification de l'arbre du client 3
  • Collision
  • Modification de l'arbre dans le serveur éclaté

g01
k12
2
g gwmr c ewg
Is hw km
lewhvzur
0
1
2
,g
g,k
k,
66
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 0
Client2 g0k12
Client3 g01
Client4 g 0 1

nrg
  • Application de CTH sur le client 2
  • Modification de l'arbre du client 2
  • Application de CTH sur le nouvel arbre du client
    2
  • Clé insérée dans le serveur 2

g01
k12
2
g gwmr c ewg
Is hw km
Lewhvzur nrg
0
1
2
,g
g,k
k,
67
Distributed Compact trie hashing Illustration du
mécanisme de distribution du fichier
Client1 e 0 g 4 k 1 2
Client3 g 0 k 1 n 2 3
  •  
  •  


Client4 g 0 k 1 n 2 3
Client2 g 0 k 1 n 2 r 3 5
h1j8k72
e0g41
4
8
7
6
5
r35
l2n63
bgvg c czxay ewg
lewhr Ihgd lrz
pbtpr Pem gcm rl
g gwmr
j is
kiyfg km
v z zur
h hpgtp hw
mf nrq
0
1
2
3
4
5
6
7
8
h,j
l,n
j,k
,e g,h k,l n,r e,g
r,
68
Distributed Compact trie hashing Performance
  • Facteur de chargement 70
  • Nombre de multicast presque nul et indépendant
    du nombre darticles insérés
  • 5 à 6 nœuds sont transférés en moyenne et
    indépendant du nombre darticles insérés

69
Distributed Compact trie hashing Variantes
  • CTH avec arbre central
  • Pas darbre au niveau des serveurs
  • Arbre réel au niveau dun serveur
  • Pas de multicasting.

70
Distributed Compact trie hashing Variantes
71
Distributed Compact trie hashing Variantes
72
Distributed Compact trie hashing Variantes
  • CTH avec plus de mlticast
  • Pas darbre au niveau des serveurs
  • Pas darbre central

73
Distributed Compact trie hashing Variantes
74
Distributed Compact trie hashing Variantes
75
Distributed Compact trie hashing Conclusion
  • Généralisation de CTH
  • Préservation de lordre des articles facilite
    les opérations de parcours séquentiel et de
    requêtes à intervalle.
  • Étude de lopération de suppression
  • Écriture dun protocole de communication pour le
    test réel de la méthode
  • Deux variantes sont proposés
  • Toutes les variantes de LH peuvent sintégrer
    dans CTH.
Write a Comment
User Comments (0)
About PowerShow.com