Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Intégration du protocole des Trains à JGroups

407 views

Published on

  • Be the first to comment

  • Be the first to like this

Intégration du protocole des Trains à JGroups

  1. 1. Int´gration du protocole des trains ` JGroups e a St´phanie OUILLON e Tiezhen WANG 30 janvier 2013
  2. 2. Premier arrˆt : JGroups e2 of 35
  3. 3. Premier arrˆt : JGroups e3 of 35
  4. 4. Destination : int´grer le protocole des trains ` JGroups e a4 of 35
  5. 5. SommaireVeuillez composter vos billets s’il vous plaˆ ıt1. Introduction au protocole des trains2. Conception d’une API Java3. Int´gration du protocole ` JGroups e a4. D´monstration e5. Conclusion 5 of 35
  6. 6. Introduction au protocole des trainsTout le monde en voiture Le protocole des trains est un protocole de diffusion (broadcast) : uniforme totalement ordonn´ e Il permet d’obtenir un d´bit optimal. e6 of 35
  7. 7. Introduction au protocole des trainsTout le monde en voiture Il est con¸u pour : c des petits clusters (16 machines maximum) des messages courts7 of 35
  8. 8. Le principe du protocoleLe circuit 8 of 35
  9. 9. Le principe du protocoleEnvoi d’un message par #009 of 35
  10. 10. Le principe du protocoleDiffusion du message - r´ception par #01 e10 of 35
  11. 11. Le principe du protocoleSuppression du wagon11 of 35
  12. 12. Le principe du protocoleArriv´e d’un nouveau processus e12 of 35
  13. 13. Impl´mentation du protocole des trains en langage C eUn fichier de configuration minimal Fichier addr file : 0:localhost:2000 1:localhost:200113 of 35
  14. 14. Impl´mentation du protocole des trains en langage C eUn fichier de configuration minimalUne interface simple Initialisation : trInit() Arrˆt : trTerminate() e Cr´ation d’un message : newmsg() e Diffusion d’un message : utoBroadcast() 3 structures : message, messageHeader, circuitView14 of 35
  15. 15. Pause au wagon-barO` l’on doit faire du caf´ u e15 of 35
  16. 16. Pause au wagon-barO` l’on doit faire du caf´ u e16 of 35
  17. 17. Pause au wagon-barO` l’on doit faire du caf´ u e17 of 35
  18. 18. Java Native Interface18 of 35
  19. 19. Java Native Interface19 of 35
  20. 20. Java Native InterfaceAvantages Int´ragir avec du code natif (C/C++) e Acc´der ` des fonctions syst`mes e a e Gestion du hardware Utilisation de librairies existantes Gain en performance (?)20 of 35
  21. 21. Java Native InterfaceAvantagesInconv´nients e Portabilit´ d´pendante du code natif e e Debug au run time difficile pour le code natif Gestion des vuln´rabilit´ du code natif e e Gestion de la m´moire e Perte de performance21 of 35
  22. 22. 22 of 35
  23. 23. API Java : trains23 of 35
  24. 24. API Java : exemple24 of 35
  25. 25. Comparaison des performances25 of 35
  26. 26. Comparaison des performances 1 train 2 processus en localhost, diffuseurs taille des messages: 10 octets dure de la mesure: 10 secondes (warmup: 1s, cooldown: 1s) 1 ms de d´lai entre 2 envois de messages e26 of 35
  27. 27. Br`ve introduction ` JGroups e aJGroups Intergiciel pour faire de la diffusion fiable Pile de protocoles flexible et configurable via un fichier27 of 35
  28. 28. Br`ve introduction ` JGroups e aJGroupsFonctionalit´s e D´tection et notification de l’arriv´ et du d´part des membres e e e D´tection et enl`vement des membres ´cras´s e e e e Envoi et r´ception des message diffus´ e e Envoi et r´ception des message point-`-point e a Transfert d’´tat e28 of 35
  29. 29. Br`ve introduction ` JGroups e aArchitecture de la pile de protocoles FLUSH / STATE TRANSFER Fragmentation (FRAG) Contrˆle de flux (UFC, MFC) o Contrˆle d’appartenance dans group (GMS) o Transfert fiable (STABLE, UNICAST2, etc) D´tection des ´ch`cs (FD SOCK, VERIFY SUSPECT, etc) e e e Merge des sous-groupes (MERGE) D´couverte des membres (PING) e Protocole de transfer (UDP, TCP)29 of 35
  30. 30. Int´gration ` JGroups e aObjectif Cr´ation d’un protocole ”trains” dans JGroups e Permettre aux utilisateurs de switcher sur le protocole des trains sans toucher ` leur code. a30 of 35
  31. 31. Int´gration ` JGroups e aObjectifFonctionalit´s e D´tection et notification de l’arriv´ et du d´part des membres e e e (pour les membres pr´sents dans la liste) e Envoi et r´ception des messages diffus´s e e Transfert d’´tat eSimplifications D´tection et enl`vement des membres ´cras´s e e e e Envoi et r´ception des messages point-`-point e a31 of 35
  32. 32. Int´gration ` JGroups e aObjectifFonctionalit´s eSimplificationArchitecture de la pile de protocoles FLUSH / STATE TRANSFER Trains protocol32 of 35
  33. 33. D´monstration e33 of 35
  34. 34. Bilan : terminus tout le monde descendObjectifs atteints API Java avec JNI op´rationnelle e Int´gration d’une brique protocolaire dans JGroups fonctionnelle e Transfert d’´tat en marche e34 of 35
  35. 35. Bilan : terminus tout le monde descendObjectifs atteintsProchaines ´tapes e Compatibilit´ du protocole avec Windows (et BSD ?) e Calcul plus fin des performances35 of 35

×