paris jug (sept 2010) - nosql : des concepts à la réalité
DESCRIPTION
TRANSCRIPT
www.parisjug.org
www.parisjug.org
Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
14/09/2010
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
14/09/2010
N(ot)O(nly) SQLDes concepts à la réalité
Olivier Mallassi
Michaël Figuière
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
00/00/2009 Titre de la présentation 3
Intervenants
• Olivier Mallassi
• Michaël Figuière
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
14/09/2010 NoSQL 4
Objectifs
• Vous proposer une vue synthétique de NoSQL
• Vous fournir un premier guide de lecture
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
NoSQL, kezako?
La fin du langage SQL?
La fin des transactions (ACID)?
La fin des SGBDR?
Non,
Juste un sigle qui regroupe des alternatives aux SGBDR
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Quelques idées reçues…
NoSQL n’est pas un remplacement des SGBDR
NoSQL reste un domaine d’innovation…
…même s’il existe de nombreux déploiement en production dans des systèmes hautement sollicités
NoSQL est un écosystème riche & complexe
Le reste ne la présentation ne se veut pas exhaustive
« Le diable est dans le détail »
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
7
Malgré tout, ces technologies sont intéressantes dans nos systèmes
• Vers plus de disponibilité
• Vers plus de souplesse des schémas/structures
• Vers plus d’élasticité de l’infrastructure
• Un volume de données stockées croissant
• Et finalement, la possibilité crée le besoin
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
8
Au commencement était…• Des cas d’usage différents mais des enjeux communs
• Performance
• Disponibilité (> 99,99%)
• Résilience
• Scalabilité horizontale
• Un moteur de recherche mondial
• Développements spécifiques : BigTable + Algorithmes Map/Reduce
• Des besoins massivement en lecture• Permet l’agrégation de gros volumes
de données
• La boutique en ligne mondiale
• Développements spécifiques : Dynamo
• Permet d’obtenir de débit et une disponibilité plus importants en écriture
• Dernier incidents majeurs : 2004• <40 minutes d’indisponibilité par an
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
9
Amazon : à l’origine de Dynamo
Différentes problématiques de stockage
Fill cart Checkout Payment Process order Prepare Send
Enjeu : disponibilité en écritureClé/Valeur suffisant
Enjeu : reporting (induit une modélisation riche)
Indisponibilité temporaire acceptable
Rupture du paradigme relationnel- table de hachage distribuée
- Relâchement d’ACID
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
10
A l’origine du mouvement noSQL
14/09/2010 NoSQL
Le Cloud démocratise ces solutions spécifiques hautement scalables
• Google App Engine permet de développer sur le Google Data Store• Amazon offre des services de stockage : SimpleDB, S3
Certains acteurs « open-sourcent » leurs solutions (pas uniquement dans le domaine NoSQL)
• LinkedIn et Voldemort, Facebook et Cassandra…
Une adoption de ces solutions
• Notamment dans le monde Web
Le sens de l’histoire : 40 années de suprématie des RDBMS enfin « challengée »
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Un foisonnement de solutions…
11
Column OrientedDocument
Graph
Un marché « Open Source Pro » : Les développeurs Redis rachetés par VMWare Cassandra, MongoDB, Riak, Neo4j ont des structures pouvant assurer le support, la formation… ..
Un marché « As A Service »
Key/Value
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
…Organisées en grandes catégoriesbasées sur la modélisation de la donnée
Clé / Valeur
Document
Orienté colonne
Graphe
Flat file, Géographique, XML, Object…
{attr1, …}
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Les bases « graphe »
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
14
Neo4j
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Les espaces de stockage « clé /valeur »
NeoAge:29Name : Thomas Anderson…
Trinity YXpnYXplZw== YXpnYXplZw==
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
16
Riak
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Les espaces de stockage orientés colonnes
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
18
Cassandra
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Les bases « Document »
{« Age »: 29,« Name » : « Thomas Anderson »« knows »:[{« name »: « Trinity »…
Neo
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
20
MongoDB
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Un changement de paradigme
1. Table de hachage distribuée
2. Relâchement d’ACID
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
22
Table de hachage distribuée
• Objectif : assurer une répartition uniforme des objets dans les cluster
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
(C)onsistance ou « Eventually consistent »
N = Nombre de réplicas
R = Nombre de réponses de lecture à attendre
W = Nombre de confirmation d’écriture à attendre
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Le ratio entre N, R et W fait tout…
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Le ratio entre N, R et W fait tout…
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Le ratio entre N, R et W fait tout…
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
27
(D)urabilité
• Approche « traditionnelle » • 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• Les données sont écrites sur le disque de manière asynchrone
• « Pas » de durabilité14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
28
(A)Tomicité et (I)solation
• Les données ne sont plus co-localisées• Localisation non prédictible dans le temps• Transaction distribuée nuirait à la disponibilité et au débit en écriture
• Atomicité et isolation par opération sur une clé
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Pour conclure, des systèmes de stockage qui repoussent les limites et changent les règles établies
Performance, débit en écriture
Stockage et Manipulation de gros volume de données
Disponibilité
Elasticité des infrastructure de stockage
Souplesse de modélisation
14/09/2010 NoSQL
Au niveau des développements
• Relâchement d’ACID• Faible modélisation et requêtage de la donnée• La gestion de certaines problématiques remontent au niveau de l’espace
applicatif (Gestion de l’intégrité transactionnelle, jointures, filtres…)
Au niveau de l’exploitation
• Changement de l’outillage (JMX…)
Au niveau de la sécurité
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Au-delà du buzz…
NoSQL parle de collaboration : stockage « polyglote » The right tool for the right job
NoSQL parle d’alternatives et challenge 40 années de suprématie des bases relationnelles…
14/09/2010 NoSQL
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Questions / Réponses
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
00/00/2009 Titre de la présentation 32
Sponsors
www.parisjug.org
Merci de votre attention!
Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Merci de votre attention!
www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
00/00/2009 Titre de la présentation 34
Licence
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/