NoSQLDes grands du Web aux entreprises14/03/2011
Speaker      @mfiguiere      blog.xebia.fr      Michaël Figuière           Distributed                                 Arch...
A propos de NoSQL             No SQL
A propos de NoSQL          Not       Only             No SQL
A propos de NoSQL          Not       Only             No SQL                       Relational
Contrairement aux idées reçues• NoSQL n’est pas un remplaçant des SGBDR        The right tool for the right job• NoSQL res...
Au commencementDes cas d’usage différents mais desbesoins similaires :                  - Création de Dynamo              ...
Amazon : naissance de Dynamo                                       Besoin en requêtes complexes,                          ...
Comment assurer la scalabilité avec un SGBDR ?       Mise en oeuvre  typique avec MySQL                                  R...
Sharding avec un SGBDR
Sharding avec un SGBDRSur serveur A   Sur serveur B
Sharding avec un SGBDRSur serveur A   Sur serveur B                          ?                         ?
Sharding avec un SGBDRSur serveur A                     Dénormalisation   Sur serveur B                Dénormalisation
Sharding avec un SGBDRSur serveur A                       Dénormalisation   Sur serveur B                Dénormalisation  ...
Sharding avec un SGBDR : les problèmes• Pour garder de bonnes performances, les relations many-to-many et  many-to-one néc...
D’une table de hachage à une BDD clé-valeur Ensemble des clés partitionnées selon         leur préfixe
D’une table de hachage à une BDD clé-valeur                              Ensemble des clés     Consistent hashing
D’une table de hachage à une BDD clé-valeur       Une partition par   Multiples partitions           instance           pa...
Organisation des noeuds en anneau            Noeud    Noeud    Noeud                             Noeud            Noeud   ...
Organisation des noeuds en anneau                Noeud    Noeud                                         Communication de  ...
Interactions Client / Serveur   Client                          Noeud    Noeud   Client                           Noeud   ...
Interactions Client / Serveur   Client   Client               ?                     Noeud    Noeud                        ...
Organisation des noeuds en anneau   Client                        Noeud    Noeud                                          ...
Que devient ACID ?• Tout accès réseau est faillible• Des concessions doivent être faites sur le modèle de données• Des con...
Le théorème CAP                                     Sur ces 3 propriétés,                                           seules...
Le théorème CAPBDD NoSQL                                 BDD relationnelles                Consistance                    ...
Consistance éventuelle   Client                          Noeud    Noeud                                            replica...
Consistance selon nombre de réponses attendues                                          Temps               A   A     A   ...
Consistance selon nombre de réponses attendues                                               Temps               A   A    ...
Consistance selon nombre de réponses attendues                                                    Temps                   ...
Consistance selon nombre de réponses attendues                          R+W=N                    A     A   A    A         ...
Consistance selon nombre de réponses attendues                          R+W>N                    A     A   A    A         ...
Consistance apparente pour le client                   1   Client                            Noeud          Noeud         ...
Atomicité et Isolation• Les données ne sont plus co-localisées         Localisation non prédictible dans le temps• Les tra...
Durabilité• Ecriture sur un ou plusieurs disques         La réplication permet de renforcer la durabilité• Ecriture multip...
Base de données orientées clé-valeur                              = HashMap !
Exemple avec Riak
Exemple avec Riak
Base de données orientées document                       La BDD est consciente du                       contenu. Les requê...
Exemple avec MongoDB
Exemple avec MongoDB
Base de données orientées colonnes    A chaque ID de ligne correspond     une liste de couples clé-valeur          BDD rel...
Exemple avec Cassandra
A propos de Cassandra
Base de données orientées graphe
Exemple avec Neo4j
L’intérêt pour l’entreprise• Stockage polyglotte : une meilleure adéquation entre la BDD et les données• Scalabilité linéa...
NoSQL en production ?• En production chez de nombreux « Grands du Web »• Outillage encore réduit• Monitoring par JMX• Back...
Cas d’usage : BI sur la BDD de production                   Stockage des                 informations en           Traitem...
Cas d’usage : stockage polyglotte             Recherche des                                                 Solr          ...
Questions / Réponses                       ?
Prochain SlideShare
Chargement dans…5
×

Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises

2 325 vues

Publié le

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

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

Aucune remarque pour cette diapositive

Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises

  1. 1. NoSQLDes grands du Web aux entreprises14/03/2011
  2. 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQLSearch Engines
  3. 3. A propos de NoSQL No SQL
  4. 4. A propos de NoSQL Not Only No SQL
  5. 5. A propos de NoSQL Not Only No SQL Relational
  6. 6. Contrairement aux idées reçues• NoSQL n’est pas un remplaçant des SGBDR The right tool for the right job• NoSQL reste un domaine d’innovation Mais déjà déployé en production !• NoSQL est un écosystème riche et complexe « Le diable est dans le détail »
  7. 7. Au commencementDes cas d’usage différents mais desbesoins similaires : - Création de Dynamo - Dernier incident majeur en 2004• Performance - < 40 min d’indisponibilité par an• Disponibilité (> 99.99 %)• Résilience• Scalabilité horizontale - Création de BigTable + MapReduce - Toutes les pages Web du monde - Fonctionnement online et offline
  8. 8. Amazon : naissance de Dynamo Besoin en requêtes complexes, indisponibilité temporaire acceptable Fill cart Checkout Payment Process order Prepare Send Stockage clé-valeur suffisant, disponibilité en écriture
  9. 9. Comment assurer la scalabilité avec un SGBDR ? Mise en oeuvre typique avec MySQL Réplication synchrone ou asynchrone
  10. 10. Sharding avec un SGBDR
  11. 11. Sharding avec un SGBDRSur serveur A Sur serveur B
  12. 12. Sharding avec un SGBDRSur serveur A Sur serveur B ? ?
  13. 13. Sharding avec un SGBDRSur serveur A Dénormalisation Sur serveur B Dénormalisation
  14. 14. Sharding avec un SGBDRSur serveur A Dénormalisation Sur serveur B Dénormalisation On perd alors beaucoup de l’intérêt du relationnel !
  15. 15. Sharding avec un SGBDR : les problèmes• Pour garder de bonnes performances, les relations many-to-many et many-to-one nécessitent d’être dénormalisées• Gestion du resharding• Code applicatif complexifié
  16. 16. D’une table de hachage à une BDD clé-valeur Ensemble des clés partitionnées selon leur préfixe
  17. 17. D’une table de hachage à une BDD clé-valeur Ensemble des clés Consistent hashing
  18. 18. D’une table de hachage à une BDD clé-valeur Une partition par Multiples partitions instance par instance
  19. 19. Organisation des noeuds en anneau Noeud Noeud Noeud Noeud Noeud Replica Noeud Partition 1 Replica Replica Partition 2 Partition N
  20. 20. Organisation des noeuds en anneau Noeud Noeud Communication de Noeud proche en proche Noeud pour diffuser les changements de topologie Noeud Noeud
  21. 21. Interactions Client / Serveur Client Noeud Noeud Client Noeud Noeud Client Client Noeud Noeud
  22. 22. Interactions Client / Serveur Client Client ? Noeud Noeud replica Noeud Noeud replica Client Noeud Client replica Noeud
  23. 23. Organisation des noeuds en anneau Client Noeud Noeud replica Client Noeud Noeud replica Client Noeud Client replica Noeud Agit en tant que proxy
  24. 24. Que devient ACID ?• Tout accès réseau est faillible• Des concessions doivent être faites sur le modèle de données• Des concessions doivent être faites sur la consistance
  25. 25. Le théorème CAP Sur ces 3 propriétés, seules 2 sont réalisables Consistance à la fois Disponibilité Tolérance aux défaillances
  26. 26. Le théorème CAPBDD NoSQL BDD relationnelles Consistance Disponibilité Tolérance aux défaillances Impossible
  27. 27. Consistance éventuelle Client Noeud Noeud replica Client Noeud Noeud replica Client Noeud Client replica Noeud Transfère les requêtes R/W vers tous les réplicas
  28. 28. Consistance selon nombre de réponses attendues Temps A A A A 4 réplicas
  29. 29. Consistance selon nombre de réponses attendues Temps A A A A 4 réplicas B A A A Ecriture avec attente d’accusé d’un seul noeud
  30. 30. Consistance selon nombre de réponses attendues Temps R+W<N A A A A 4 réplicas B A A A B A A ALecture avec attente de Ecriture avec attente réponse de 2 noeuds d’accusé d’un seul noeud
  31. 31. Consistance selon nombre de réponses attendues R+W=N A A A A B B A A B B A ALecture avec attente de Ecriture avec attente réponse de 2 noeuds d’accusé de 2 noeuds
  32. 32. Consistance selon nombre de réponses attendues R+W>N A A A A B B B A B B B ALecture avec attente de Ecriture avec attente réponse de 3 noeuds d’accusé de 2 noeuds
  33. 33. Consistance apparente pour le client 1 Client Noeud Noeud 2 replica 3 Client 4 2 Noeud Noeud 3 replica Client 3 2 Noeud Client replica Noeud Transfère les requêtes R/W vers tous les réplicas
  34. 34. Atomicité et Isolation• Les données ne sont plus co-localisées Localisation non prédictible dans le temps• Les transactions distribuées nuiraient à la disponibilité et aux performances• Atomicité et Isolation par opération sur une clé
  35. 35. Durabilité• Ecriture sur un ou plusieurs disques La réplication permet de renforcer la durabilité• Ecriture multiples en mémoire La réplication apporte la durabilité• En mémoire avec écriture asynchrone sur disque Pas de durabilité
  36. 36. Base de données orientées clé-valeur = HashMap !
  37. 37. Exemple avec Riak
  38. 38. Exemple avec Riak
  39. 39. Base de données orientées document La BDD est consciente du contenu. Les requêtes complexes sont possibles
  40. 40. Exemple avec MongoDB
  41. 41. Exemple avec MongoDB
  42. 42. Base de données orientées colonnes A chaque ID de ligne correspond une liste de couples clé-valeur BDD relationnelle BDD orientée colonnes
  43. 43. Exemple avec Cassandra
  44. 44. A propos de Cassandra
  45. 45. Base de données orientées graphe
  46. 46. Exemple avec Neo4j
  47. 47. L’intérêt pour l’entreprise• Stockage polyglotte : une meilleure adéquation entre la BDD et les données• Scalabilité linéaire : être à même de répondre aux besoins les plus gourmands• Haute disponibilité : du multi-serveurs au multi-datacenters• Elasticité : une intégration naturelle à la logique du Cloud Computing• Curseur pour s’adapter : + de consistence ou + de fiabilité (R + W > N)• Et finalement... la possibilité crée le besoin !
  48. 48. NoSQL en production ?• En production chez de nombreux « Grands du Web »• Outillage encore réduit• Monitoring par JMX• Backups peuvent être problématiques avec des volumes importants
  49. 49. Cas d’usage : BI sur la BDD de production Stockage des informations en Traitement batch production distribué Application HBase Hadoop Exploitation Stockage des résultats des résultats
  50. 50. Cas d’usage : stockage polyglotte Recherche des Solr produits Stockage du catalogue produits MySQL Application Stockage des Cassandra comptes clients Stockage de Redis données de sessions
  51. 51. Questions / Réponses ?

×