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

51
NoSQL Des grands du Web aux entreprises 14/03/2011

description

 

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

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

NoSQL

Des grands du Web aux entreprises

14/03/2011

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

Speaker

Michaël Figuière

@mfiguiere

blog.xebia.fr

Search Engines NoSQL

DistributedArchitectures

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

A propos de NoSQL

No SQL

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

A propos de NoSQL

No SQL

Not Only

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

A propos de NoSQL

No SQLRelational

Not Only

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

Contrairement aux idées reçues

• NoSQL n’est pas un remplaçant des SGBDR

• NoSQL reste un domaine d’innovation

• NoSQL est un écosystème riche et complexe

The right tool for the right job

Mais déjà déployé en production !

« Le diable est dans le détail »

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

Au commencement

• Performance

• Disponibilité (> 99.99 %)

• Résilience

• Scalabilité horizontale

Des cas d’usage différents mais des besoins similaires : - Création de Dynamo

- Dernier incident majeur en 2004- < 40 min d’indisponibilité par an

- Création de BigTable + MapReduce- Toutes les pages Web du monde- Fonctionnement online et offline

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

Amazon : naissance de Dynamo

Fill cart Checkout Payment Process order Prepare Send

Stockage clé-valeur suffisant,disponibilité en écriture

Besoin en requêtes complexes,indisponibilité temporaire acceptable

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

Comment assurer la scalabilité avec un SGBDR ?

Réplication synchrone ou asynchrone

Mise en oeuvretypique avec MySQL

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

Sharding avec un SGBDR

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

Sharding avec un SGBDR

Sur serveur B

Sur serveur A

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

Sharding avec un SGBDR

Sur serveur B

Sur serveur A

??

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

Sharding avec un SGBDR

Sur serveur B

Sur serveur A

Dénormalisation

Dénormalisation

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

Sharding avec un SGBDR

Sur serveur B

Sur serveur A

Dénormalisation

Dénormalisation

On perd alors beaucoup de l’intérêt du relationnel !

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

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é

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

D’une table de hachage à une BDD clé-valeur

Ensemble des cléspartitionnées selon

leur préfixe

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

D’une table de hachage à une BDD clé-valeur

Ensemble des clés

Consistent hashing

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

D’une table de hachage à une BDD clé-valeur

Une partition parinstance

Multiples partitionspar instance

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

Organisation des noeuds en anneau

Noeud

Noeud

NoeudNoeud

Noeud

Noeud

ReplicaPartition 1

ReplicaPartition 2

ReplicaPartition N

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

Organisation des noeuds en anneau

Noeud

Noeud

NoeudNoeud

Noeud

Noeud

Communication de proche en prochepour diffuser les changements de

topologie

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

Interactions Client / Serveur

Client

Client

Client

Client

Noeud

Noeud

NoeudNoeud

Noeud

Noeud

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

Interactions Client / Serveur

Client

Client

Client

Client

Noeud

Noeud Noeudreplica

Noeudreplica

NoeudNoeudreplica

?

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

Organisation des noeuds en anneau

Client

Client

Client

Client

Noeud

Noeud Noeudreplica

Noeudreplica

NoeudNoeudreplica

Agit en tantque proxy

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

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

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

Le théorème CAP

Consistance

Disponibilité

Toléranceaux défaillances

Sur ces 3 propriétés,seules 2 sont

réalisablesà la fois

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

Le théorème CAP

Consistance

Disponibilité

Toléranceaux défaillances Impossible

BDD relationnellesBDD NoSQL

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

Consistance éventuelle

Client

Client

Client

Client

Noeud

Noeud Noeudreplica

Noeudreplica

NoeudNoeudreplica

Transfère les requêtes R/W vers tous les réplicas

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

Consistance selon nombre de réponses attendues

4 réplicas

A A A A

Temps

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

Ecriture avec attented’accusé d’un seul noeud

Consistance selon nombre de réponses attendues

4 réplicas

A A A A

B A A A

Temps

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

Ecriture avec attented’accusé d’un seul noeud

Consistance selon nombre de réponses attendues

R + W < N

Lecture avec attente de réponse de 2 noeuds

4 réplicas

A A A A

B A A A

B A A A

Temps

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

Consistance selon nombre de réponses attendues

R + W = N

Ecriture avec attented’accusé de 2 noeuds

Lecture avec attente de réponse de 2 noeuds

A A A A

B B A A

B B A A

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

Consistance selon nombre de réponses attendues

R + W > N

Ecriture avec attented’accusé de 2 noeuds

Lecture avec attente de réponse de 3 noeuds

A A A A

B B B A

B B B A

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

Consistance apparente pour le client

Client

Client

Client

Client

Noeud

Noeud Noeudreplica

Noeudreplica

NoeudNoeudreplica

Transfère les requêtes R/W vers tous les réplicas

1

2

2

2

3

3

3

4

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

Atomicité et Isolation

• Les données ne sont plus co-localisées

• Les transactions distribuées nuiraient à la disponibilité et aux performances

• Atomicité et Isolation par opération sur une clé

Localisation non prédictible dans le temps

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

Durabilité

• Ecriture sur un ou plusieurs disques

• Ecriture multiples en mémoire

• En mémoire avec écriture asynchrone sur disque

La réplication permet de renforcer la durabilité

La réplication apporte la durabilité

Pas de durabilité

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

Base de données orientées clé-valeur

= HashMap !

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

Exemple avec Riak

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

Exemple avec Riak

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

Base de données orientées document

La BDD est consciente du contenu. Les requêtes complexes sont possibles

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

Exemple avec MongoDB

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

Exemple avec MongoDB

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

Base de données orientées colonnes

BDD relationnelle BDD orientée colonnes

A chaque ID de ligne correspond une liste de couples clé-valeur

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

Exemple avec Cassandra

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

A propos de Cassandra

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

Base de données orientées graphe

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

Exemple avec Neo4j

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

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 !

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

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

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

Cas d’usage : BI sur la BDD de production

Application HBase Hadoop

Stockage des informations en

production

Exploitationdes résultats

Traitement batch distribué

Stockagedes résultats

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

Cas d’usage : stockage polyglotte

Application

Solr

MySQL

Cassandra

Redis

Recherche desproduits

Stockage de données de sessions

Stockage du catalogue produits

Stockage des comptes clients

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

Questions / Réponses

?