Your SlideShare is downloading. ×
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises

1,829
views

Published on

Published in: Technology, Travel, Business

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,829
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. NoSQL Des grands du Web aux entreprises 20/10/2010
  • 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière NoSQL UG JUGs
  • 3. A propos de NoSQL No SQL
  • 4. A propos de NoSQL Not Only No SQL
  • 5. A propos de NoSQL Not Only No SQL Relational
  • 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. Au commencement Des cas d’usage différents mais des besoins 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. 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. Comment assurer la scalabilité avec un SGBDR ? Mise en oeuvre typique avec MySQL Réplication synchrone ou asynchrone
  • 10. Sharding avec un SGBDR
  • 11. Sharding avec un SGBDR Sur serveur A Sur serveur B
  • 12. Sharding avec un SGBDR Sur serveur A Sur serveur B ? ?
  • 13. Sharding avec un SGBDR Sur serveur A Dénormalisation Sur serveur B Dénormalisation
  • 14. Sharding avec un SGBDR Sur serveur A Dénormalisation Sur serveur B Dénormalisation On perd alors beaucoup de l’intérêt du relationnel !
  • 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. D’une table de hachage à une BDD clé-valeur Ensemble des clés partitionnées selon leur préfixe
  • 17. D’une table de hachage à une BDD clé-valeur Ensemble des clés Consistent hashing
  • 18. D’une table de hachage à une BDD clé-valeur Une partition par Multiples partitions instance par instance
  • 19. La répartition en anneau
  • 20. La répartition en anneau
  • 21. 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
  • 22. Le théorème CAP BDD relationnelles Utopique Consistance Disponibilité Tolérance aux partitions BDD NoSQL
  • 23. Consistance éventuelle R+W<N 4 réplicas Lecture avec attente de Ecriture avec attente réponse de 2 noeuds d’accusé d’un seul noeud
  • 24. Consistance éventuelle R+W=N Lecture avec attente de Ecriture avec attente réponse de 2 noeuds d’accusé de 2 noeuds
  • 25. Consistance éventuelle R+W>N Lecture avec attente de Ecriture avec attente réponse de 3 noeuds d’accusé de 2 noeuds
  • 26. 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é
  • 27. 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é
  • 28. Base de données orientées clé-valeur = HashMap !
  • 29. Exemple avec Riak
  • 30. Base de données orientées document La BDD est consciente du contenu. Les requêtes complexes sont possibles
  • 31. Exemple avec MongoDB
  • 32. 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
  • 33. Exemple avec Cassandra
  • 34. A propos de Cassandra
  • 35. Base de données orientées graphe
  • 36. Exemple avec Neo4j
  • 37. 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 !
  • 38. Cas d’usage : batch distribué Stockage des informations en Traitement batch production distribué Application HBase Hadoop Exploitation Stockage des résultats des résultats
  • 39. Cas d’usage : stockage polyglotte Recherche des Lucene produits Stockage du catalogue produits MySQL Application Stockage des Cassandra comptes clients Stockage du réseau social clients Neo4j
  • 40. Questions / Réponses ?