Transcript
Page 1: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

1

IH* – Hachage Multidimensionnel Distribué et Scalable

BOUKHELEF DjelloulÉtudiant en PhD, Institut National d’Informatique (INI), Alger. Algérie

E-mail: [email protected]

Directeur de thèse : Pr D-E. ZEGOUR

Page 2: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

2

Partie I:

Structures de données Distribués et Scalables

Page 3: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

3

Serveurs

Clients

Répertoired'accès

Structures de données classiques

Schémas de distribution classiques : Partitionnement par intervalle, Partitionnement par hachage, Round-Robin , …

Mécanisme de calcul d'adresse unique et centralisé un point d'accumulation Limite sur les performances d'accès Vulnérabilité aux pannes Scalabilité et Disponibilité

Duplication du calcul d'adresse MAJ synchrones des clients:

Impossible pour un grand nombre de clients distribués et autonomes

Page 4: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

4

SDDS – Structures de Données Distribuées et Scalables

Conçues spécifiquement pour les multiordinateurs

Une collection d'ordinateurs, Stations de travail, faiblement couplés (à partage de rien, shared nothing) interconnectés par un réseau informatique (MAN, LAN, WAN)

Une nouvelle classe de structures de données pour des bases de données modernes

D’une grande taille (GO – TO) Avec des données complexes: spatiales, géographiques, Image, Son, …

Scalables Grandissent rapidement en gardant les mêmes performances

Haute disponiblilité et disponibilité incrémentale (scalable availability)

Page 5: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

5

SDDS – Axiomes généraux (1)

Les données sont identifiées par des clés (d1), OID pour les objets

Les données sont stockées sur des serveurs et sont accédées par des clients autonomes

Il n'y a pas de répertoire central d'accès Image locale par client Mécanisme de vérification et de redirection des requêtes Mécanisme de mise à jour distribué des images des clients

Les MAJ de la structure d'une SDDS ne sont pas envoyées aux clients de manière synchrone

Page 6: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

6

SDDS – Axiomes généraux (2)

Un client peut faire des erreurs d'adressage suite à une image inadéquate de la structure de SDDS

Chaque serveur vérifie l'adresse de la requête et l'achemine vers un autre serveur si une erreur est détectée

Le serveur adéquat envoie un message correctif (Image Adjustment Message, IAM) au client ayant commis l'erreur d'adressage

Le client ajuste son image local pour ne plus faire, au moins, la même erreur

Page 7: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

7

SDDS – Axiomes généraux (3)

i’ = 0n’ = 0

0 1

0 1 2 3 4

Level = 2Next = 1

Correction d’image Level = 2

Requête h0(k) = 1

Réponse

Redirectioni’ = 2n’ = 0

Ajustement de l’image

locale

Page 8: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

8

SDDS – Contraintes (1)

Si une SDDS n'évolue plus, alors les IAM font converger toute image d'un client vers l'image actuelle du fichier

L'ensemble des renvois à la suite d'une erreur d'adressage ne se fait qu'en quelques messages

Performance d'accès d'une SDDS Nombre de messages sur le réseau (indépendante des

paramètres du réseau) Nombre de messages par opération Vitesse de convergence de l’image d’un nouveau client

Page 9: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

9

SDDS – Contraintes (2)

Scalabilité Prendre en charge n’importe quelle quantité de données

pas de limite théorique de la taille, pas de réorganisation totale de la structure

Maintenir les performances quand le volume de données stockées varie: temps d ’accès constants

Distribution Une grande quantité de données Traitement parallèle et distribué Non vulnérabilité aux pannes

Disponibilité Assurer la continuité du fonctionnement 24 heures sur 7

jours

Page 10: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

10

SDDS – Typologie

Arbre Hachage

DisponibilitéLH*m, LH*g

DisponibilitéLH*m, LH*g

SécuriséLH*s

SécuriséLH*s

ClassiquesClassiquesSDDSSDDS

1-d-ArbreDRT, DRT*,

RP*

1-d-ArbreDRT, DRT*,

RP*

k-d-ArbreDistributed B+

k-RP*

k-d-ArbreDistributed B+

k-RP*

d-dimensionnel

IH*d-dimensionnel

IH*

1-dimensionnelLH*, LH*LH

DDH, EH*

1-dimensionnelLH*, LH*LH

DDH, EH*

k-disponibilitéLH*RS, LH*SA

k-disponibilitéLH*RS, LH*SA

Structure de DonnéesStructure de Données

Page 11: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

11

SDDS – Travaux en cours à l’INI

IH* Scalable and Distributed Interpolation-Based Hashing

D. Boukhelef

CTH* Scalable and Distributed Compact-Trie-Hashing

D-E. Zegour

TH* Scalable and Distributed Trie-Hashing

M. Aridj

Page 12: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

12

Partie II:

Structures de données multidimensionnelles

Page 13: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

13

Données multidimensionnelles

Espace de clés K : K = D0D1...Dd-1

Fichier F : F = (r1,r2, ... , rN)

Enregistrement r : r = (k0, k1, ... , kd-1, a0, a1, ... , am) K ;

kj Dj pour 0 j d

D1

D0

Records

K

Page 14: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

14

Méthodes d’accès multidimensionnelles

Propriétés

00R 1

0R 11R

20R

22R 2

3R

21R

All

jRK

ji RR

Page 15: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

15

IH – Hachage par Interpolation

Proposé par W.A. Burkhard en 1983 Extension du Hachage Linéaire (LH) de Litwin

Principe : clé k = k0, k1, ... , kd-1

Interpolation (shuffle function) Former la signature de k (record signature) Appliquer le LH classique pour décider où se trouve la clé k

Implémentation des requêtes à intervalle : (partial match query & range query).

Page 16: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

16

Partie III:

IH* - Adaptation du Hachage par interpolation aux environnements distribués

Page 17: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

17

IH* – Hachage par Interpolation Distribué et Scalable

Structure de donnée àbase du Hachage (Linéaire)

Adaptation du IH aux environnements distribuésselon le modèle SDDS

Introduction de l’ordre et l’aspect multidimensionnel à la SDDS LH*

Hachage par Interpolation

Distribué et Scalable (IH*)

Hachage par Interpolation

Distribué et Scalable (IH*)

Hachage Linéaire

Multidimensionnel (IH)

Hachage Linéaire

Multidimensionnel (IH)

Hachage Linéaire

Distribué et Scalable (LH*)

Hachage Linéaire

Distribué et Scalable (LH*)

Hachage Linéaire (LH)Hachage Linéaire (LH)

Page 18: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

18

IH* – Structure d’un fichier

Serveurs (j) Stockage de données Evaluation des requêtes des clients

Clients autonomes (i’ , n’) Accès aux données Intermédiaire entre application

et système SDDS

Site Coordinateur (i , n) Maintient les paramètres du fichier Gestion d’éclatement Allocation de sites

Coordinateuri , n

Coordinateuri , n

Client1

i’ , n’

Client1

i’ , n’

Clientn

i’ , n’

Clientn

i’ , n’

Réseaux d’interconnexion

j j j

Serveurs

Page 19: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

19

IH* – Évolution du Fichier

0

00R

i = 0 , n = 0i = 0 , n = 0

0

Page 20: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

20

IH* – Évolution du Fichier

i = 1 , n = 0i = 1 , n = 0

0 1

11R

10R

0 1

Page 21: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

21

IH* – Évolution du Fichier

i = 1 , n = 1i = 1 , n = 1

0

1222R

20R

11R

0 1 2

Page 22: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

22

IH* – Évolution du Fichier

i = 2 , n = 0i = 2 , n = 0

0 1 2 3

0

2

1

323R

22R

20R

21R

Page 23: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

23

Éclatement d’un serveur

Algorithme SplitServer (n)

1- créer la case (n+2j): niveau j’= j+1

2- éclater la case (n) en utilisant hj+1

3- mettre à jour j j+1

4- confier l’éclatement au site coordinateur

Fin

Page 24: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

24

IH* – Eclatement

Éclatement non contrôlé À chaque collision

Éclatement contrôlé Taux de chargement est supérieur / inférieur au

facteur de chargement du fichier

0 1 2

3 4 5 6 7

8 9 10

Splitted Servers Newly created Servers

0

1

2

3

4

5

6 7

8

910

Next server to split (n)

Splitted Servers Newly created Servers

Uniform data distribution Non-uniform data distribution

Page 25: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

25

IH* - Éclatement contrôlé

1ère solution : Loi de distribution de données

2ème solution : Négociation entre Coordinateur et Server (n) Garder l’historique des messages de collision

Next server to split (n)

0

1

2

3

4

5

6 7

8

910

Splitted Servers Newly created Servers

Non-uniform data distribution

Page 26: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

26

Adressage (1)

i’ = 0n’ = 0

0 1

0 1 2 3 4

Level = 2Next = 1

IAM Level = 2

Requête h0(k) = 1

Réponse

Redirectioni’ = 2n’ = 0

Ajustement de l’image

locale

Page 27: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

27

Adressage (2)

i’ = 2n’ = 0

0 1 2 3

Level = 2Next = 3

IAM Level = 3

Requête h2(k) = 2

Réponse

Redirection i’ = 2n’ = 2

Ajustement de l’image

locale

0 1 2 3

4 5 6

Page 28: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

28

Requête à intervalles

10

Image du clienti’ = 1 , n’ = 0

1

Image exacteLevel = 2, Next = 3

140

62

5

3

5

3

Page 29: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

29

Requête à intervalles

)( )( )( ), , ,()( 1-1-1-1110001-10 dddd uklukluklkkkku,l R

Page 30: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

30

Envoi par Diffusion – Principes

i’ = ..n’ = ..

Client

Mécanisme d’envoi

multicast

Requête par intervalle sur

F1

Multiordinateur

F1 0 1 2 3 4 5

F2 0 1 2 3

Serveurs libres

Page 31: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

31

Envoi par Diffusion – Critiques

Simple: un envoi pour tous le monde

Multicast n’est pas toujours disponibles sur tous les réseaux

Peut ne pas être efficacement implémenté

Trop de messages sur le réseaux

Problèmes du déterminisme d’envoi et de réception dans le cas des

Page 32: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

32

Envoi ciblé (solution LH*)

i’ = 1n’ = 0

Client

Multiordinateur

Level = 2 Next = 3

F1 0 1 2 3 4 65

0 1

Requête à intervalle sur

F1

Page 33: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

33

Envoi ciblé – Critiques

Déterministe

Parcours de tous les serveur même pour un petit nombre d’enregistrements

Pas d’ordre dans LH

Page 34: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

34

Envoi sélectif (solution IH*)

i’ = 1n’ = 0

Client

Multiordinateur

Level = 2 Next = 3

F1 0 1 2 3 4 65

0 1

Requête à intervalle sur F1

Page 35: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

35

Envoi sélectif – Client

Déterminer l’ensemble A des serveurs couvrant la région de Q (Algo Range Query du IH) : A {0, 1, ..., n’+2i’}

Déterminer pour chaque serveur de A la région correspondante en utilisant (n’est pas forni par IH)

Envoyer à chaque serveur de A la sous-requête correspondante;

Page 36: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

36

Envoi sélectif – Serveur

Découper la requête reçue en des sous des sous-requêtes plus fines

Déterminer l’ensemble des serveur fils et envoyer à chaque serveur la sous-requête correspondante

Si portée du serveur portée de la sous-requête alors

Exécuter la requête correspondante Retourner(réponse + adresse + niveau)

Page 37: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

37

Envoi par décomposition récursive

Page 38: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

38

Décomposition récursive – Client

Algorithm Generate_Target_ServersBegin

Compute the set S of target servers: S={s0, s1, ... , sm} {0, 1, ... , n’+2i’-1}

Decompose the range of Q into relevant sub-queries: P ={ q0, q1, ... , qm}

for each server si from S do

Send (qi, j) towards server (si): j i’+1 if (sin) and j i’ otherwiseend for

End

Page 39: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

39

Décomposition récursive – Serveur

Algorithm Query_Propagation (Q, j)Begin

Compute the set S of children servers: S={sk, sk+1, ... , sk+m} {a+2j+1, ... , a+2j’’}

where k is the level of sk at the moment of its creation by server (a): j <k j’Decompose the range of Q into relevant sub-queries: P ={ qk, qk+1, ... , qk+m}for each server sk from S do

Send (qk, k) towards server (sk)end for

End

Page 40: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

40

Décomposition récursive – Exemple

Page 41: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

41

Tests de terminaison

Probabiliste Expiration du timeout

Déterministe Tous les serveurs ont bien répondu

Hybride : Déterministe avec timeout

Déterminer les serveurs manquant Leur retransmettre les messages de requête Retourner à l’application les réponses reçues Signaler au Coordinateur les serveurs n’ayant pas répondu Lancer la procédure de recouvrement

Page 42: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

42

Architecture – Serveur / Coordinateur

Page 43: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

43

Architecture – Client

Page 44: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

44

Architecture – Serveur de noms

Page 45: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

45

Module de contrôle de flux

Worker Thread

Window Thread

Sender Threads

Timer Thread

Ack / Error Thread

Worker Thread

Receiver ThreadAnswers FIFO

Ack / Error FIFO

Requests FIFO Non Ack FIFO

Full Win. Pos.

Window

Empty Win. Pos.

PushPop

Input Socket

Output Sockets

Page 46: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

46

Implémentations

Environnement Windows (XP, 2000)

Windows - Visual C++ (V6) Protocole plus complet Test et validation des résultats

Java et XML Interopérabilité (Langage, SQL Xquery, …) Portabilité (Windows, Linux, …) Requêtes / Réponses par lot (bulk operations)

Page 47: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

47

Visual C++ (V6)

Programmation 100% objet

Interface graphique

MFC & API Windows

TCP, UDP I/O Completion Port, Asynchronous I/O Multithreading

Environnement de développement

Page 48: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

48

Implémentation – Client

Page 49: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

49

Implémentation – Serveur

Page 50: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

50

Implémentation – Manager / Agent

Page 51: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

51

Partie IV:

Conclusion & perspectives

Page 52: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

52

Travaux en cours

Compléter le prototype IH*, mesurer ses performances Rétrécissement du fichier Structure de la case (IH*IH), contrôle d’éclatement Terminaison des requêtes à intervalle et réception de repenses Généraliser le contrôleur de flux, Event-driven : IOCP

Amélioration du schéma IH classique Requêtes à intervalle récursives Détermination de la portée d’une région quelque soit le niveau

actuelle du fichier.

Nouveau schéma de hachage linéaire multidimensionnel Gray code, distance de Hamming Préservation de la localité spatiale (proximity preserving) Meilleur déclustering des données Requête non orthogonales & Recherche au voisinage

Page 53: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

53

Travaux futurs

Sécurité & Haute disponibilité récupération sur panne: serveur, coordinateur Sans-coordinateur, coordination distribués

Sauvegarde & restauration : Signature, …

Qualité , Performances : Architectures (Even-driven), communication, … Serveur de noms distribué, Interopérabilité (XML)

Adaptation du IH* au P2P Fully decentrilzed (data & index), fault tolerent SDDS

Page 54: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

54

Problèmes ouverts

Plate-forme unifiée pour le test et la validation des systèmes SDDS

SDDS avec coordination et accès complètement décentralisés

Placement des serveurs et équilibrage de charge (données et travail)

Gestion des caches dans les systèmes SDDS

Page 55: IH*  –  Hachage Multidimensionnel Distribu é  et Scalable

55

Merci de votre attention

BOUKHELEF Djelloul

[email protected]


Top Related