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

© Klee Group Direction technique & Spark Archives NoSQL 11 PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011.

Présentations similaires


Présentation au sujet: "© Klee Group Direction technique & Spark Archives NoSQL 11 PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011."— Transcription de la présentation:

1 © Klee Group Direction technique & Spark Archives NoSQL 11 PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011

2 © Klee Group Prez Flash NoSQL Jérôme Mainaud « NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. » Emmanuel Bernard 2011

3 © Klee Group Prez Flash NoSQL Jérôme Mainaud SQL Il était une fois

4 © Klee Group Prez Flash NoSQL Jérôme Mainaud Modèle de données relationnel CLI_ID PAN_ID

5 © Klee Group Prez Flash NoSQL Jérôme Mainaud 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 © Klee Group Prez Flash NoSQL Jérôme Mainaud Transactions ACID Pas de modification partiellePas de modification partielle Atomic (Atomique) A la fin de la transaction, les données doivent être dans un état cohérent.A la fin de la transaction, les données doivent être dans un état cohérent. Assuré par les contraintes dintégritésAssuré par les contraintes dintégrités mais aussi et surtout par le développeurmais aussi et surtout par le développeur Consistant (Cohérent) Les modifications dune transaction ne sont pas visibles par les autres tant quelle na pas été validée.Les modifications dune transaction ne sont pas visibles par les autres tant quelle na pas été validée. Isolées Une fois validés, les données sont permanentes jusquà leur prochaine modificationUne fois validés, les données sont permanentes jusquà leur prochaine modification Durable

7 © Klee Group Prez Flash NoSQL Jérôme Mainaud Marché mature Utilisé depuis des dizaines dannées De nombreux fournisseurs et de nombreux outils Oracle SQL Server Mysql Postgresql MariaDB (clone de Mysql) MS Access

8 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases de données relationnelles Entités - relationEntités - relation SimpleSimple UniverselUniversel Modèle SQLSQL PuissantPuissant Ad-hocAd-hoc Requête ACIDACID Transaction Utilisé massivementUtilisé massivement Nombreux moteurs sur le marchéNombreux moteurs sur le marché Nombreux outilsNombreux outils Maturité

9 © Klee Group Prez Flash NoSQL Jérôme Mainaud Mise en œuvre dun SGBD-R Serveur Applicatif Base de données HTTP JDBC

10 © Klee Group Prez Flash NoSQL Jérôme Mainaud Mise en œuvre dun SGBD-R Serveurs Applicatifs Base de données HTTP JDBC

11 © Klee Group Prez Flash NoSQL Jérôme Mainaud Mise en œuvre dun SGBD-R Serveurs Applicatifs Base de données HTTP JDBC

12 © Klee Group Prez Flash NoSQL Jérôme Mainaud Mise en œuvre dun SGBD-R Serveurs Applicatifs Base de données HTTP JDBC

13 © Klee Group Prez Flash NoSQL Jérôme Mainaud Montée en charge difficile Les règles dinté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 © Klee Group Prez Flash NoSQL Jérôme Mainaud Coût des transactions ACID La lecture est éparpillée Lecture dun 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 dune requête est difficile à prévoir Select * from t where id = ? Select * from t where date < (select max(date) from ot)

15 © Klee Group Prez Flash NoSQL Jérôme Mainaud 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 Cest le modèle objet qui est privilégié

16 © Klee Group Prez Flash NoSQL Jérôme Mainaud NOT ONLY SQL Repenser les bases de données

17 © Klee Group Prez Flash NoSQL Jérôme Mainaud 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 © Klee Group Prez Flash NoSQL Jérôme Mainaud Performances temps daccès 10 ns10 nsMémoire 50 µs50 µsRéseaulocal 10 ms10 msDisque Il est plus rapide dinterroger une autre machine que de lire sur le disque local

19 © Klee Group Prez Flash NoSQL Jérôme Mainaud Performances prédictibles La performance des opérations doit être prédictible Amazon: Perte de 1 % de chiffre daffaire si le temps daffichage 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 saffichent en plus de 1,5 s

20 © Klee Group Prez Flash NoSQL Jérôme Mainaud Prise en compte des pannes La panne est la règle Amazon: Un datacenter de disques entre et 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 © Klee Group Prez Flash NoSQL Jérôme Mainaud CAP Après la modification dune donnée, tous les clients lisent la nouvelle valeur.Après la modification dune donnée, tous les clients lisent la nouvelle valeur. Consistency (Cohérence) Le système répond toujours aux requêtes dans un temps borné (timeout))Le système répond toujours aux requêtes dans un temps borné (timeout)) Avalibility (Disponibilité) Le système continue à fonctionner si le réseau qui relie les nœuds est scindé en deux.Le système continue à fonctionner si le réseau qui relie les nœuds est scindé en deux. La chute dun nœud est une forme particulière de partition.La chute dun nœud est une forme particulière de partition. Partition Tolerance (Tolérance aux pannes)

22 © Klee Group Prez Flash NoSQL Jérôme Mainaud THÉORÈME CAP « You can have at most two of these properties for any sharded- data system. » Eric A. Brewer 19 juillet 2000

23 © Klee Group Prez Flash NoSQL Jérôme Mainaud Théorème CAP Oracle RAC LDAP Commit à 2 phases Cache validation Bases distribuées Verrous distribués Verrou pessimiste La partition minoritaire est indisponible DNS Cache Web Expiration Résolution de conflit Verrou optimiste

24 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 1 Nœud 2 Client B Version 1 Théorème CAP Démonstration par lexemple

25 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 1 Nœud 2 Client B Version 1 MAJ 1 2 Théorème CAP Démonstration par lexemple

26 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 2 Nœud 2 Client B Version 1 MAJ 1 2 Théorème CAP Démonstration par lexemple

27 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 2 Nœud 2 Client B Version 2 Théorème CAP Démonstration par lexemple Lit version 2

28 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 1 Nœud 2 Client B Version 1 MAJ 1 2 Théorème CAP Démonstration par lexemple

29 © Klee Group Prez Flash NoSQL Jérôme Mainaud Nœud 1 Client A Version 2 Nœud 2 Client B Version 1 MAJ 1 2 Théorème CAP Démonstration par lexemple Perte du message

30 © Klee Group Prez Flash NoSQL Jérôme Mainaud Théorème CAP Démonstration par lexempleCA Perte de message détectéePerte de message détectée Lécriture échoueLécriture échoue CP Attente et rejeu jusquà ce que le message soit transmisAttente et rejeu jusquà ce que le message soit transmis Réponse potentiellement trop tardiveRéponse potentiellement trop tardive AP Validation de lécritureValidation de lécriture État incohérentÉtat incohérent

31 © Klee Group Prez Flash NoSQL Jérôme Mainaud Le choix dAmazon Lors quun client clique sur le bouton « acheter » Faut-il ?

32 © Klee Group Prez Flash NoSQL Jérôme Mainaud Cohérence à termeACID Cohérence forteCohérence forte IsolationIsolation TransactionsTransactions Verrous pessimistesVerrous pessimistes SchémaSchéma Évolutions difficilesÉvolutions difficiles BASE Basicaly-Available Soft- state Eventual consistencyBasicaly-Available Soft- state Eventual consistency Cohérence faibleCohérence faible Procédure de réconciliationProcédure de réconciliation Favorise la disponibilitéFavorise la disponibilité RapideRapide Pas de schémaPas de schéma Évolutions facilesÉvolutions facilesContinuumContinuum

33 © Klee Group Prez Flash NoSQL Jérôme Mainaud Cohérence par Quorum V1V1 V1V1 V1V1 V1V1 V1V1 Client A Client B V2V2 N réplicas

34 © Klee Group Prez Flash NoSQL Jérôme Mainaud Cohérence par Quorum V2V2 V2V2 V2V2 V?V?V?V? V?V?V?V? V?V? Client A Client B N réplicas OK Le client attend E OK pour valider lécriture

35 © Klee Group Prez Flash NoSQL Jérôme Mainaud Cohérence par Quorum V2V2 V2V2 V2V2 V?V?V?V? V?V?V?V? V?V? Client A Client B N réplicas Le client B lit L valeurs Si E + L > N la lecture est cohérente avec lécriture

36 © Klee Group Prez Flash NoSQL Jérôme Mainaud Architecture décentralisée N0 N1 N2 N3 N4 N5 N6 N7 Client A Client B A,B,C D,E,F G,H,I J,K,L M,N,O P,Q,R,S T,U,V W,X,Y,Z GOSSIPGOSSIP

37 © Klee Group Prez Flash NoSQL Jérôme Mainaud MAP-REDUCE Traiter les données

38 © Klee Group Prez Flash NoSQL Jérôme Mainaud Map-Reduce Technique de traitement des données de grandes tailles Acteurs réputés: Google Hadoop CouchDB MongoDB (C1 V1) Map (K2 V2) InputSort (K2 [V2 V2]) Reduce (K3 V3) Traitement localTraitement global

39 © Klee Group Prez Flash NoSQL Jérôme Mainaud MODÈLES DE DONNÉES Repenser les bases de données

40 © Klee Group Prez Flash NoSQL Jérôme Mainaud Entités-relation CLI_ID PAN_ID

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

42 © Klee Group Prez Flash NoSQL Jérôme Mainaud Clef-valeur ClefValeur Répartition facile Requêtes optimales à temps constantes Performances prédictibles Convient parfaitement à lutilisation dun cache Pas de requêtes Adhoc ni filtres complexes Toutes les jointures doivent être faites dans le code Pas de contraintes Pas de triggers

43 © Klee Group Prez Flash NoSQL Jérôme Mainaud Clef-valeur Berkley DB (Oracle) Cohérente Maitre/esclave Memcache MemcacheDB = Memcache + BerkeleyDB Membase (couchbase.org) Erlang Riak Cohérent Erlang Redis (Vmware) Cohérent 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) Cohérent à terme Gigaspace Infinityspan (RedHat, JBoss) Hibernate OGM

44 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases de documents { "_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 } ] } { "_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 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases de documents Répartition facile Limite le nombre de requêtes pour les objets composites. Permet des requêtes adhoc Mise à jour partielle Toutes les jointures doivent être faites dans le code Pas de contraintes Pas de triggers

46 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases de documents MongoDB 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 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases orientées colonnes Table clairsemée La liste des colonnes peut changer dune ligne à lautre

48 © Klee Group Prez Flash NoSQL Jérôme Mainaud 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 dune cellule : 2 Gio

49 © Klee Group Prez Flash NoSQL Jérôme Mainaud Bases orientées colonnes Répartition facile Gère de très gros volumes de données Mise à jour partielle Toutes les jointures doivent être faites dans le code Pas de contraintes Pas de triggers

50 © Klee Group Prez Flash NoSQL Jérôme Mainaud 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 dintégration avec la suite Hadoop Open source

51 © Klee Group Prez Flash NoSQL Jérôme Mainaud Graphe Bases qui permettent détudier globalement les relations entre entités. Ex: Graph social

52 © Klee Group Prez Flash NoSQL Jérôme Mainaud Graphe Neo4j GPL Très actif Bases RDF Jena (HP) Sesame (OpenRDF) Bigdata Langage de requête normé : SPARQL

53 © Klee Group Prez Flash NoSQL Jérôme Mainaud Questions ? Retrouvez nous sur le blog technique de Klee


Télécharger ppt "© Klee Group Direction technique & Spark Archives NoSQL 11 PrezFlash :: NoSQL Jérôme Mainaud 19 juillet 2011."

Présentations similaires


Annonces Google