400 likes | 482 Views
Signatures Algébriques dans les Systèmes de Gestion de Données Scalables et Distribuées SDDS-2005. Riad Mokadem Riad.Mokadem@Dauphine.fr. Encadré par : Pr W.Litwin. Séminaire de Recherche CERIA 15 Décembre 2005.
E N D
Signatures Algébriques dans les Systèmes de Gestion de Données Scalables et Distribuées SDDS-2005 Riad Mokadem Riad.Mokadem@Dauphine.fr Encadré par : Pr W.Litwin Séminaire de Recherche CERIA 15 Décembre 2005
Les SDDSsProblématiqueSignatures AlgébriquesSignatures Algébriques Pré Calculées cumulativesEncodage / Décodage de donnéesAlgorithmes de Karp-Rabin, Boyer Moore.Recherche de caractères Recherche complète, par préfixe, par chaîne, plus grand préfixe commun, plus grande chaîne commune.Protection contre la corruption dans SDDS-2005Mesures de Performances ComparaisonsPerspectives et Conclusion Plan
Multi-ordinateur Architecture Matérielle: Multi-ordinateur
... Applications Applications Applications Applications Client Client Client Client SDDS-CP SDDS-CP SDDS-CP SDDS-CP Réseau SDDS-CP SDDS-CP SDDS-CP SDDS-CP SDDS-CP Serveur Serveur Serveur Serveur Serveur de d'index RP* S ... ... ... Noms ... Cases en RAM Cases en RAM Cases en RAM Architecture SDDS-2005 Architecture SDDS 2005
Problématique ? - Données visibles par les utilisateurs. - Différents types de recherche coûtants Utilisation des signatures cumulatives pour la recherche et contre les vues accidentelles des données • Encodage\ Décodage des données par le client (Données codées sur les serveurs). • différentes possibilités de recherches
Structure de Données Key Data Non Key Data Structure d’un enregistrement Le codage décodage concerne les données non clé Le codage décodage est transparent pour le serveur et les signatures sont calculées au niveau du client. Limite des 256B pour les données
Signatures Algébriques Structure de corps de Galois fini GF(2f) f>>1 Chaque symbole du corps de longueur f Utilisation de Xor pour les opérations + et – . Utilsation de tables Antilog et Log pour X et / . Existence d’un élément primitif Signature algébrique Sign ( P )= pi i i = 1..n Tels que P=(p1,p2,…,pn) ( = : , 2, 3…) Signature sur N symboles: Sign (P)= (Sign ( P ), Sign 2( P ),…Sign N( P ))
Signatures Algébriques dans SDDS-2005 Utilisation des signatures algébriques dans SDDS-2004: * Stockage sur le disque. - Calcul de signatures pour les pages de données et stockage des pages mises à jour. * Gestion de concurrence (Mise à jour). - Comparaison entre la signature avant et la signature après d’un enregistrement lors d’une mise à jour. * Recherche complète de chaîne dans les enregistrements.
Signatures Algébriques:Recherche de Chaînes (SDDS-2004):Recherche Complète de Donnée Lr Es K Lc Sg Data Lr : Longer of record. Es: Pointer to next record K: Key of record. Lc: Version Sg: Signature of record. Record Structure Comparaison avec la signature stockée au niveau de chaque enregistrement Recherche d’une chaîne de signature S * Le client envoi la signature S de la chaîne à rechercher * Parcours séquentiel des enregistrements * Comparaison avec les signatures algébriques stockées au niveau de chaque en-tête d’enregistrement.(Test sur le 1er symbole puis le 2 ème en cas d’égalité)
Signatures AlgébriquesCumulatives Encodage de pi : p’i=pii = antilog (log pi+i) p’’i= p’’i-1 + p’i=p’’i-1 XOR p’i Décodagede Pi : pi=p’i / i =antilog (log p’i- i) p’i= p’’i - p’’i-1= p’’i XOR p’’i-1
Signatures Algébriques Cumulatives Exemple: P=« CERIA_SEMINAIRE» Encodage P’’=(p’’1,p’’2,….p’’15)=(C, p’’1+ 2E,….,p’’14+ 15E) Sign2(P)= C+ 2E+….+ 15E Décodage p’i= p’’i - p’’i-1 p’2= p’’2 - p’’1 pi = p’i / ip2= p’2 / i
Cas SDDS-2005 Signatures algébriques pour la recherche complète N=2 (N nombre de symboles constituant la signature) F=16 Signatures cumulatives pour la recherche de chaines N=2 F= 16 Probabilité de collision de 2-Nf. GF(28) chaînes Code ASCII GF(216 ) chaînes dans Unicode
Recherche de Données • Pas d’Envoi de données lors de certaines recherches Envoi de signatures. • Données encodées. Signatures pré-calculées. • Plusieurs algorithmes disponibles: Boyer Moore, Karp Rabin…
Requête de Recherche Envoi du résultat de la recherche Encodage / DécodageRequête de Recherche Encodage à l’insertion Serv 1 Client Serv 2 Décodage Serv 3 Comparaison des signatures
Recherche de Chaînes dans SDDS-2005 Recherche du Préfixe Recherche de Préfixe - Le client envoi la signature Sc et la taille du préfixe m. Au serveur: - Lecture dans l’enregistrement de la signature Sm. - Comparaison entre Sc et Sm. Sauvegarde l’enregistrement en cas d’égalité. - Passage à l’enregistrement suivant. - Vérification de Collision et envoi des enregistrements sélectionnés au client. Complexité de la Recherche: O(1)
Recherche de Chaînes dans SDDS-2005 Recherche du Préfixe UNIVERSITE PARIS DAUPHINE Signature cumulative de UNIVERSITE PARIS = Sign (S) Signature cumulative de UNIVERSITE PARIS DAUPHINE = Sign (E) • Sc Sign (U) • ….Sc= Sign (S) Préfixe trouvé
Recherche de Chaînes dans SDDS-2005 Recherche Partielle • Recherche de chaîne partielle • * Le client envoi la signature Sc et la taille de donnée l. • Au niveau du serveur: • i=1; • 1- Lecture de la signature Ss sur le préfixe de longueur L. • Si Ss=Sc, l’enreg est sélectionné dans la liste des enregistrements envoyés au client. • 2- Si i+l = n (taille de l’enregistrement) et Ss Sc passer à l’enreg suivant.
Recherche de Chaînes dans SDDS-2005 Recherche Partielle 2.1 Ss := Ss XOR p’i XOR p’l + i 2.2 Sc:= antilog (log Sc+ 1). 3. Si Ss=Sc Chaine trouvé et l’enreg est sélectionné Sinon ( Ss Sc) pas de chaîne trouvée i := i + 1; Revenir à (2) jusqu’au dernier caractère p’ de l’enreg. 4. passer à l’enregistrement suivant
Recherche de Chaînes dans SDDS-2005 Recherche Partielle UNIVERSITE PARIS DAUPHINE …. Exemple: - Recherche de la chaîne « PARIS » - Le client envoi la signature cumulative Sc des 5 caractères à rechercher et la taille L=5. • Au niveau du serveur: • Parcourt séquentiel suivant des chaînes de 5 caractères et compraison de signatures. • Sign(E)!=Sc, Sign(R)!=Sc,….Sign(S)=Sc Chaîne trouvée • - Vérification de Collision sur les enregistrements trouvés. • Complexité de la Recherche: O(n)
Recherche de Chaînes dans SDDS-2005Recherche du Plus Grand Préfixe • Le client envoi le préfixe encodée de données. S’’=s’’1s’’2…s’’l à l’ensemble des serveurs • -1. Trouver le 1er enreg tels que p’’1=s’’1. • u=1;//Test si p’’2= s’’2. • 2. Parcourir l’enreg suivant 2u.i=2u • 3. tant que p’’i=s’’i et 2u<n u:=u+1; L=u; • Soit j=(2u + 2u-1)/2 • Si p’’j=s’’j Recherche dans [j,p’’u] L:=j • Sinon recherche dans [p’’u-1,j] • Revenir à (3)
Recherche de Chaînes dans SDDS-2005Recherche du Plus Grand Préfixe - Rajouter l’enregistrement à la liste. Soit s’’L sa sign cumulative - Examiner le prochains enregistrement: - Test Si p’’1=s’’L u=L revenir à (1). (en multipliant parL) - Déterminer nouveau L Chaque serveur répond au client en envoyant un message comportant la taille du plus grand préfixe et les différents enregistrements concernés. Complexité de la Recherche par enregistrement: Entre O(1) et O(Log 2m). (M taille du préfixe commun)
Recherche de Chaînes dans SDDS-2005Recherche du Plus Grand Préfixe UNIVERSITEPARIS_ DAUPHINE Chaîne S Enreg1 P UNIVERSITEDAUPHINE UNIVERSITEPARIS9 DAUPHINE Enreg2 P’ Enregistrement1: Comparaion entre P et S. Egalité sur p1, p2, p4, p8. Inégalité sur p16, p12. Egalité ur p10. Inégalité sur p11 L=10 Enregistrement2: Comparaion entre P’ et S. Egalité sur p1, p2, p4, p8. Inégalité sur p16. Egalité ur p12, p14, p15. L=15
Recherche de Chaînes dans SDDS-2005Plus Grande Chaîne Commune Le client envoi la chaîne encodée de données. S’’=s’’1s’’2…s’’m à l’ensemble des serveurs. ( Appliquer l’algorithme du plus grand préfixe sur chaque caractère ) i:=1;j:=1; -1. Si p’’j=s’’i k:=i; appliquer l’Algorithme du plus grand préfixe Déterminer L i:=k+1; j:=1; revenir à (1) sinon j:=j+1, si j < n-L revenir à (1); -2. i:=i+1; si i < m et m-i<L j=1;revenir à (1) sinon Enregistrement suivant n Taille de l’enreg. m Taille de la chaîne L Taille de la plus grande chaîne commune
Recherche de Chaînes dans SDDS-2005Plus Grande Chaîne Commune SEMINAIREPARISDAUPHINE Chaîne S …. Enreg1 P UNIVERSITEDAUPHINE UNIVERSITEPARISDAUPHINE9 Enreg2 P’ Enregistrement1: L= 8 Enregistrement2: L= 13 Complexité de la Recherche par enregistrement: Entre O(n-L) (m-L)et O(nm). (n Taille de l’enreg, m taille de la chaîne envoyée par le client, L la taille de chaîne commune la plus longue)
Protection contre la collision lors de la Recherche dans SDDS-2005 • A la fin de la recherche, résolution collision donnés. • Deux possibilités: • * Résolution au niveau du client. • - Risque de recherche à nouveau sur l’ensemble des serveurs en cas de collision. • * Résolution au niveau des serveurs (Notre choix). • - comparaisons en parallèle. • Comparaison caractère par caractère entre la chaîne reçue et le contenu de l’enregistrement sélectionné. Relancer la recherche en cas de collision (caractére par caractére)
Recherche de Chaînes:Algorithme de Karp-Rabin Une sous chaîne peut être considérée comme un nombre entier en base d (f=8 est la taille de l'alphabet, M taille de la chaîne à rechercher) P’i = pifM-1+pi+1fM-2+ … +pi+M-2f+pi+M-1 La valeur pour la sous chaîne commençant à la position suivante peut être calculée à l'aide de l'expression: p’i+1 = (p’i-pifM-1)*f+pi+M
Mesures de Performances (Codage / Décodage de Données) Encodage : 0.045ms/KB Décodage : 0.042ms/KB Insertion : 0.25ms/KB Faible coût • Recherche de données plus rapide • Protection contre la vue accidentelle de ces données
Mesures de Performances (Signatures Cumulative) Record Record Préfix Time Position Size Size (msec) 1 250 20 0.369 100 250 20 37.8 100 250 35 37.78 200 250 20 71.3 300 250 20 120.53 500 250 20 197.5 Record Record String Offset Time Position Size Size (msec) 1 20 5 13 0.44 1 100 20 70 0.68 1 100 20 80 0.682 100 100 20 70 72.5 100 100 30 70 71.7 200 100 20 70 165 Temps de recherche de chaînes Temps de recherche de Préfixes L’utilisation de Modulo pour remédier à la limite de taille de données (255) augmente le temps de recherche de 1% à 2%.
Mesures de Performances(Signatures Cumulative) } Existence de plus grands préfixes intermédiaires Temps de recherche du plus grand Préfixe Temps de recherche de la plus grande chaîne commune
Size of case Size of records Size of last record Size data to search Offset in last Record Algebraic Signature Search Karp Rabin Search Cumu- latives sign Search 100 250 25 10 5 205 151 147 200 250 25 10 5 368 275 268 500 250 25 10 5 1123 725 702 1000 250 25 10 5 2254 1580 1526 Comparaisons Tableau comparatif pour la recherche de chaîne dans un enregistrement
Comparaisons (Ms) (MB) Temps de recherche de chaînes réduits: -Algorithmes existants (karp-Rabin) Gain de 5% pour les données<32B Gain de + de 20% pour les données>32B -Données non encodées (Gain de 30%).
Recherche dans SDDS-2005 } Recherche par clé } Recherche par le contenu Interface du Client pour différents types de recherche s dans SDDS-2005
Exemple de Recherche de Préfixe dans SDDS-2005 Lancement de la recherche du Préfixe au niveau de l’application Résultat provenant du serveur au niveau du Client SDDS-2005
Perspectives Autres méthodes: (à implémenter) -Utilisation du schéma de Horner( signatures inversées ) Sign=p1αn+p2αn-1+….+pnα1 =(p1α+p2)α+p3) α….+pnα -Utilisation de table de Broder, de multiplication de polynômes, de table multiplication par α Plus rapide
Perspectives: Protection contre la corruption dans SDDS-2005 Au moment de l’insertion de données Pour chaque 255 caractères Calcul du 2ème symbole de la signature s2(élément primitif α2 ) Sauvegarde au niveau du client de s2. Au moment du décodage: Calcul de la signature s’2 sur l’enregistrement provenant du serveur Comparaison avec la signature stockée Détection de corruption en cas d’inégalité Probabilité de non détection de corruption de données 1/2nf
Perspectives: Compression delta pour les mise à jour distribuées de données dans GF(216): A chaque insertion: Calcul de la sign cumulative (2 symboles) chaque 256 car et stockage de s2 dans la structure de l’enreg. A chaque mise à jour (normale): Recherche->Comparaison entre l’image avant et arrière au niveau du dernier car de la signature: *Egalité Pas de mise à jour *Différence: comparaison au milieu de l’enreg.... Déterminer la partie mise à jour Même principe pour le stockage (Déterminer les pages modifiées)
Exemple de stockage dans SDDS-2005 Listing d’exécution sur Server SDDS-2005(Cas de signatures algébriques) 1ére Requête de stockage : New File calcul de Signature s (375 ms) sauvegarde sur disque de toutes les pages (4922 ms) 2ème Requête de stockage : Pas de changement (375 ms) 3ème Requête de stockage : 1 page mise à jour (375 + 16 ms) Amélioration de ces temps en utilisant les signatures Pré Calculées Cumulatives
Conclusion - Implémentation de nouvelles primitives de recherche, mise à jour et stockage. ( Prototype SDDS-2005 ) En téléchargement sur http:\ceria.dauphine.fr
Références - W Litwin, R.Mokadem & Th.Schwarz Pre-computed Algebraic Signatures for faster string search. Protection against incidental viewing and corruption of Data in an SDDS. Proceeding of third international workshop and co-located with the 31st international conference on very large data bases (DBISP2P 2005). Trondheim, Norway. August 2005. - W Litwin, R Mokadem, Thomas Schwarz.: "Disk Backup Through Algebraic Signatures in Scalable and Distributed Data Structures", Proceedings of the Fifth Workshop on Distributed Data and Structures, Thessaloniki, June 2003 (WDAS 2003). http://ceria.dauphine.fr/Riad/Article_storage-wdas_wl.pdf -M. Crochemore and T.Lecroq, Pattern Matching and Text Compression Algorithm, in The Computer Science and Engineering Handbook, A.B. Tucker, Jr, ed., CRC Press, Boca Raton, 2003, Chapter 8. To appear. Litwin, W., Schwarz, Th. Algebraic Signatures for Scalable Distributed Data Structures. IEE Intl. Conf. On Data Eng., ICDE-04, 2004. Karp, R. M., Rabin, M. O.Efficient randomized pattern-matching algorithms. IBM Journal of Research and Development, Vol. 31, No. 2, March 1987. Ingold Rolf.2004 Programmation 3A: Algorithmique. Recherche de sous-chaînes. Université of Fribourg.2004