Apache Zookeeper"From a certain point onward, there is no longer any turning back.         That is the point that must be ...
Pourquoi ?●   Pourquoi sintéresser au problème de consensus ?    –   Parce que cest le même que celui des transactions    ...
Quest ce quun consensus ?●   Soit un système composé de N processus et un domaine    de valeurs D●   Chaque processus poss...
Fallacies of Distributed Computing●   Pourquoi est-ce difficile ?    1. Le réseau nest pas fiable    2. La latence nest pa...
Est-ce possible ?●   Théorème de M. Fisher, N. Lynch et M. Paterson    (1985)      Dans un modèle de communication asynchr...
Dans la pratique...●   2 Phase Commit :    –  Bloquant, haute vulnérabilité aux pannes, ne gère pas un "fail-stop" du     ...
Zookeeper Atomic Broadcast●   Zookeeper implémente un algorithme inspiré de    Paxos appelé ZAB : Zookeeper Atomic Broadca...
Et ça sert à quoi ?      ●          Leader Election : attribuer un rôle spécifique à 1 JVM1 en          particulier parmi ...
Et ça sert à quoi (encore)●   Architecture orientée service : annuaire de services    hautement disponible et cohérent●   ...
Qui lutilise ?                  Et bien dautres.......   10
Le modèle de programmation●   Modèle simple : Zookeeper expose une arborescence et les données    sont stockées dans les n...
Programmation de + haut niveau                    Netflix Curator1 est une bibliothèque                    développée par ...
Points dattention●   Zookeeper conserve les données en mémoire et la taille des données associées à    un Znode ne peut (p...
Question ?                  Michael Morello             michael.morello@gmail.com                    @barkbay             ...
Prochain SlideShare
Chargement dans…5
×

Présentation de Apache Zookeeper

4 347 vues

Publié le

Une présentation en français de Apache Zookeeper, un système de coordination de processus.

Publié dans : Business
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 347
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
63
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Présentation de Apache Zookeeper

  1. 1. Apache Zookeeper"From a certain point onward, there is no longer any turning back. That is the point that must be reached." - Kafka Michael Morello @barkbay 1
  2. 2. Pourquoi ?● Pourquoi sintéresser au problème de consensus ? – Parce que cest le même que celui des transactions distribuées – Parce quaujourdhui les traitements sont répartis sur plusieurs machines – Parce quil faut accepter que ces machines et le réseau qui les relie ne soient pas fiables 2
  3. 3. Quest ce quun consensus ?● Soit un système composé de N processus et un domaine de valeurs D● Chaque processus possède une valeur initiale v0 dans D → Il y a consensus si lensemble des processus évaluent une même valeur finale vf 3
  4. 4. Fallacies of Distributed Computing● Pourquoi est-ce difficile ? 1. Le réseau nest pas fiable 2. La latence nest pas nulle 3. La bande passante nest pas infinie 4. Le réseau nest pas sécurisé 5. La topologie change 6. Il y a plusieurs administrateurs 7. Transporter une donnée a un coût 8. Le réseau nest pas homogène Fallacies of Distributed Computing - Peter Deutsch @Sun Microsystems 4
  5. 5. Est-ce possible ?● Théorème de M. Fisher, N. Lynch et M. Paterson (1985) Dans un modèle de communication asynchrone et si lon considère que les processus peuvent connaître des défaillances alors il nexiste pas de solution 5
  6. 6. Dans la pratique...● 2 Phase Commit : – Bloquant, haute vulnérabilité aux pannes, ne gère pas un "fail-stop" du coordinateur, utilisable seulement pour coordonner un faible nombre de processus● 3 Phase Commit : – Non bloquant, plus résistant que 2PC, mais gère de manière incomplète un "fail-recover" du coordinateur● Algorithme de Paxos : – Algorithme de consensus basé sur un quorum de participants – Pas de coordinateur, pas de "Single Point of Failure" – Robuste, fonctionne tant quil y a une majorité de participants 6
  7. 7. Zookeeper Atomic Broadcast● Zookeeper implémente un algorithme inspiré de Paxos appelé ZAB : Zookeeper Atomic Broadcast● Paxos est efficace mais ZAB apporte quelques améliorations : – Par exemple il garantit dans quel ordre les transactions sont appliquées alors que Paxos ne le permet pas. 7
  8. 8. Et ça sert à quoi ? ● Leader Election : attribuer un rôle spécifique à 1 JVM1 en particulier parmi N ● Group Membership : regrouper de manière logique des JVM ● (Double) Barriers : synchronisation de N JVM ● Sections critiques : partage de verrous ou de sémaphores entre plusieurs JVM 81 : Il existe aussi des API pour dautres langages comme le C, Perl et Python
  9. 9. Et ça sert à quoi (encore)● Architecture orientée service : annuaire de services hautement disponible et cohérent● Centre de configuration de processus dynamique et hautement disponible● Système de message (à la JMS) hautement disponible, haute performance, et avec conservation de lordre des messages (Kafka, Hedwig) 9
  10. 10. Qui lutilise ? Et bien dautres....... 10
  11. 11. Le modèle de programmation● Modèle simple : Zookeeper expose une arborescence et les données sont stockées dans les nœuds de larbre : /parent : data1     |­ fils1 : data2     `­ fils2 : data3● Ces nœuds sont appelés ZNodes● La mise à jour des nœuds se fait de manière atomique grâce à ZAB● Les clients peuvent être immédiatement notifiés dune mise à jour des données. 11
  12. 12. Programmation de + haut niveau Netflix Curator1 est une bibliothèque développée par Netflix qui offre une API de haut niveau afin de faciliter lutilisation de Zookeeper : – Gestion plus aisée de la connexion au cluster Zookeeper et des problèmes – Offre des recettes de bases (leader, lock, cache...) – Extension : annuaire de service 121 : https://github.com/Netflix/curator
  13. 13. Points dattention● Zookeeper conserve les données en mémoire et la taille des données associées à un Znode ne peut (par défaut) dépasser 1Mo● Les "watches" qui notifient immédiatement les clients dune mise à jour des données ne sont exécutés quune seule fois et dans un même "thread"● Corollaire du point précédent : certains événements peuvent être manqués et il faut faire attention aux problèmes de synchronisation.● Attention à leffet de troupeau (Herd Effect) si trop de clients surveillent le même Znode lorsque celui-ci est modifié.● En Java : attention aux longues pauses du garbage collector qui peuvent faire croire au cluster que le client sest déconnecté. 13
  14. 14. Question ? Michael Morello michael.morello@gmail.com @barkbay 14

×