La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011 1 1 1.

Présentations similaires


Présentation au sujet: "PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011 1 1 1."— Transcription de la présentation:

1 PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011 1 1 1

2 « NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. » Emmanuel Bernard — 2011

3 Il était une fois SQL

4 Modèle de données relationnel
Panier PAN_ID CLI_ID DATE MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE

5 Un langage de requête plus ou moins normé
SQL Un langage de requête plus ou moins normé Tout information est décrite par des listes de n-uplets Opérations puissante Sélection (where) Projection (select) Produit cartésien (join) Union Intersection Différence

6 Transactions ACID Pas de modification partielle Atomic (Atomique)
A la fin de la transaction, les données doivent être dans un état cohérent. Assuré par les contraintes d’intégrités mais aussi et surtout par le développeur Consistant (Cohérent) Les modifications d’une transaction ne sont pas visibles par les autres tant qu’elle n’a pas été validée. Isolées Une fois validés, les données sont permanentes jusqu’à leur prochaine modification Durable

7 Utilisé depuis des dizaines d’années
Marché mature Utilisé depuis des dizaines d’années De nombreux fournisseurs et de nombreux outils Oracle SQL Server Mysql Postgresql MariaDB (clone de Mysql) MS Access

8 Bases de données relationnelles
Modèle Entités - relation Simple Universel Requête SQL Puissant Ad-hoc Transaction ACID Maturité Utilisé massivement Nombreux moteurs sur le marché Nombreux outils Utilisé mais pas choisi

9 Mise en œuvre d’un SGBD-R
Base de données Serveur Applicatif HTTP JDBC

10 Mise en œuvre d’un SGBD-R
Serveurs Applicatifs Base de données HTTP JDBC

11 Mise en œuvre d’un SGBD-R
Base de données Serveurs Applicatifs HTTP JDBC

12 Mise en œuvre d’un SGBD-R
Serveurs Applicatifs Base de données JDBC HTTP

13 Montée en charge difficile
Les règles d’intégrité compliquent la montée horizontale Montée en charge verticale Coût non linéaire Atteint une limite Point unique de défaillance

14 Coût des transactions ACID
La lecture est éparpillée Lecture d’un panier de N articles 2 requêtes 2 IO pour lire le panier N+1 IO pour les articles L’écriture est lente IO synchronisés La durée d’une requête est difficile à prévoir Select * from t where id = ? Select * from t where date < (select max(date) from ot)

15 Le modèle Entité Relation peu exploité
Le modèle Entité-Relation est souvent peu exploité Utilisation du CRUD Utilisation de caches Memcache Ehcache Correspondance ORM C’est le modèle objet qui est privilégié

16 Repenser les bases de données
Not oNLY SQL

17 Montée en charge linéaire
Deux critères Volume des données Nombre de requêtes Twitter Janvier 2010 : 50 M/j Juin 2011 : 200 M/j Le coût doit augmenter linéairement

18 Performances — temps d’accès
Mémoire 10 ns Réseau local 50 µs Disque 10 ms Il est plus rapide d’interroger une autre machine que de lire sur le disque local

19 Performances prédictibles
La performance des opérations doit être prédictible Amazon: Perte de 1 % de chiffre d’affaire si le temps d’affichage des pages augmente de 0,1 s Plan qualité interne : Temps de réponse doit être < 300 ms pour 99,9 % des requêtes pour un pic de 500 requêtes par secondes Google pénalise les sites dont les pages s’affichent en plus de 1,5 s

20 Prise en compte des pannes
La panne est la règle Amazon: Un datacenter de 100 000 disques entre 6 000 et 10 000 disques en panne par an (25 disques par jour) Les sources de panne sont nombreuses Matériel serveur (disque) Matériel réseau Alimentation électrique Anomalies logicielles Mises à jour des logiciels et des OS.

21 CAP Consistency (Cohérence)
Après la modification d’une donnée, tous les clients lisent la nouvelle valeur. Avalibility (Disponibilité) Le système répond toujours aux requêtes dans un temps borné (timeout)) Partition Tolerance (Tolérance aux pannes) Le système continue à fonctionner si le réseau qui relie les nœuds est scindé en deux. La chute d’un nœud est une forme particulière de partition.

22 « You can have at most two of these properties for any sharded-data system. »
Eric A. Brewer — 19 juillet 2000 Théorème CAP

23 Théorème CAP Bases distribuées Verrous distribués Oracle RAC
Verrou pessimiste La partition minoritaire est indisponible Oracle RAC LDAP Commit à 2 phases Cache validation DNS Cache Web Expiration Résolution de conflit Verrou optimiste

24 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 1 Nœud 2 Client B Version 1

25 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 1 MAJ 1  2 Nœud 2 Client B Version 1

26 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 2 MAJ 1  2 Nœud 2 Client B Version 1

27 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 2 Lit version 2 Nœud 2 Client B Version 2

28 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 1 MAJ 1  2 Nœud 2 Client B Version 1

29 Théorème CAP — Démonstration par l’exemple
Nœud 1 Client A Version 2 MAJ 1  2 Perte du message Nœud 2 Client B Version 1

30 Théorème CAP — Démonstration par l’exemple
Perte de message détectée L’écriture échoue CP Attente et rejeu jusqu’à ce que le message soit transmis Réponse potentiellement trop tardive AP Validation de l’écriture État incohérent

31 Lors qu’un client clique sur le bouton « acheter » Faut-il ?
Le choix d’Amazon Assurer la cohérence entre les serveurs Ajouter l’article dans le panier et assurer la vente Lors qu’un client clique sur le bouton « acheter » Faut-il ?

32 Cohérence à terme Continuum ACID Cohérence forte Isolation
Transactions Verrous pessimistes Schéma Évolutions difficiles BASE Basicaly-Available Soft-state Eventual consistency Cohérence faible Procédure de réconciliation Favorise la disponibilité Rapide Pas de schéma Évolutions faciles Continuum

33 Cohérence par Quorum V2 V1 V1 Client A N réplicas V1 Client B V1 V1

34 N réplicas Cohérence par Quorum Le client attend E OK
pour valider l’écriture V2 OK V2 Client A OK N réplicas V2 OK Client B V? V?

35 N réplicas Cohérence par Quorum Le client B lit L valeurs V2 V2
Client A N réplicas V2 Client B V? V? Si E + L > N la lecture est cohérente avec l’écriture

36 Architecture décentralisée
A,B,C Client A W,X,Y,Z D,E,F GOSSIP T,U,V G,H,I J,K,L P,Q,R,S Client B M,N,O

37 Traiter les données Map-Reduce

38 Map-Reduce Technique de traitement des données de grandes tailles
Acteurs réputés: Google Hadoop CouchDB MongoDB (C1V1) Map (K2V2) Input Sort (K2[V2 V2’]) Reduce (K3V3) Traitement local Traitement global

39 Repenser les bases de données
Modèles de données

40 Entités-relation Panier Client PAN_ID CLI_ID CLI_ID DATE NOM CLI_ID
MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE

41 SQL Server (Microsoft) MySQL (Oracle) IBM DB2 PostgreSQL MariaDB
Entité-relation SQL NewSQL Oracle Database SQL Server (Microsoft) MySQL (Oracle) IBM DB2 PostgreSQL MariaDB Bases entièrement en mémoire et réparties sur plusieurs nœuds avec réplication. VoltDB vFabric SQLFire (Vmware) (beta)

42 Clef-valeur Clef Valeur
Convient parfaitement à l’utilisation d’un cache Performances prédictibles Répartition facile Requêtes optimales à temps constantes Pas de triggers Pas de contraintes Toutes les jointures doivent être faites dans le code Pas de requêtes Adhoc ni filtres complexes

43 Infinityspan (RedHat, JBoss)
Clef-valeur Berkley DB (Oracle) Cohérente Maitre/esclave Memcache MemcacheDB = Memcache + BerkeleyDB Membase (couchbase.org) Erlang Riak Cohérent Redis (Vmware) en mémoire ; écriture disque asynchrone types évolués (liste et map) et opérations évoluées associées Dynamo (Amazon) Cohérent à terme Utilisation indirecte avec les outils Amazon AWS Voldemort (LinkedIn) Gigaspace Infinityspan (RedHat, JBoss) Hibernate OGM

44 Bases de documents Collection de documents JSON {
"_id" : ObjectId("4c220a42f3924d31102bd866"), "cli_id" : ObjectId("4c220a42f3924d31102bd867"), "date" : " ", "montant_total” : 123, "tva” : 20.16, "articles” : [ { “art_id” : ObjectId("4c220a42f3924d31102bd85b"), “qte” : 2, "pu” : 50 }, { “art_id” : ObjectId("4c220a42f3924d31102bd869"), "qte” : 1, "pu": 23 } ] } Collection de documents JSON

45 Bases de documents Mise à jour partielle Permet des requêtes adhoc
Limite le nombre de requêtes pour les objets composites. Répartition facile Pas de triggers Pas de contraintes Toutes les jointures doivent être faites dans le code

46 Bases de documents MongoDB CouchDB (Apache) OrientDB Terrastore
Cohérent Bien documentée Références Foursquare Bit.ly Sourceforge The New York Times Github Grooveshark CouchDB (Apache) Cohérent à terme Erlang Complexe OrientDB Java embarquable Terrastore Lotus Notes (IBM) Cohérent à terme RavenDB .Net

47 Bases orientées colonnes
Table clairsemée La liste des colonnes peut changer d’une ligne à l’autre Clef A B C D E F G H ID1 65 9 8 ID2 12 34

48 Bases orientées colonnes
Gère un très grand nombre de données Ex: Cassandra Max nombre colonnes : Max taille clef et du nom de colonne: 64 Kio Max taille valeur d’une cellule : 2 Gio Clef TS Colonne ID1 T1 A = 65 T9 D = 9 T3 H = 8 ID2 T4 B = 12 T6 E = 34

49 Bases orientées colonnes
Mise à jour partielle Gère de très gros volumes de données Répartition facile Pas de triggers Pas de contraintes Toutes les jointures doivent être faites dans le code

50 Bases orientées colonnes
Bigtable (Google) Cohérent Utilisable via Google App Engine Basée sur Google File System Simple DB (Amazon) Cohérent à terme Option de lecture cohérente Utilisable comme service AWS Hbase (Apache) Cohérente Base historique de Hadoop Créée par Yahoo! Open source Cassandra (Apache) Cohérent à terme Niveau de cohérence réglable Créée par Facebook Grande communauté En cours d’intégration avec la suite Hadoop

51 Graphe Bases qui permettent d’étudier globalement les relations entre entités. Ex: Graph social

52 PrezFlash Web Sémantique Octobre 2011
Graphe Neo4j GPL Très actif Bases RDF Jena (HP) Sesame (OpenRDF) Bigdata Langage de requête normé : SPARQL PrezFlash Web Sémantique Octobre 2011

53 Questions ? http://blog.kleegroup.com/teknics teKnics@kleegroup.com
Retrouvez nous sur le blog technique de Klee @teKnics_Klee


Télécharger ppt "PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011 1 1 1."

Présentations similaires


Annonces Google