Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
15-‐03-‐25
1
Département de génie logiciel et des technologies de l’information
There were 34,522 complaints called in to 311 between September 8 and September 15, 2010. Here are the most common, plotted by time of day. Source: Wired.com
Département de génie logiciel et des technologies de l’information
Visualizing friendships Source: https://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919
15-‐03-‐25
2
Département de génie logiciel et des technologies de l’information
The Buddy System: How Medical Data Revealed Secret to Health and Happiness
Source: http://www.wired.com/medtech/health/magazine/17-10/ff_christakis?currentPage=all
Département de génie logiciel et des technologies de l’information
The Buddy System: How Medical Data Revealed Secret to Health and Happiness
Source: http://www.wired.com/medtech/health/magazine/17-10/ff_christakis?currentPage=all
15-‐03-‐25
3
Les systèmes NOSQL (NOSQL Systems)
Département de génie logiciel et des technologies de l’information
Intro
• Les systèmes de traitement en lot massivement parallèle basé sur MapReduce (comme Hadoop) ont engendré des systèmes de base de données infonuagique.
15-‐03-‐25
4
Département de génie logiciel et des technologies de l’information
Système NOSQL
• Nouveaux besoins de compagnies internet (Amazon, Facebook, Google…) ! Mise à l’échelle distribuée (scale out) ! Élasticité ! Disponibilité
Département de génie logiciel et des technologies de l’information
Attributs de qualités
• Mise à l’échelle distribuée ! Pour répondre à la forte demande,
l’infonuagique est distribuée sur plusieurs machines, à travers le monde, qui possèdent chacun une copie de la base de données.
! Il faut balancer la charge à travers les différents serveurs afin d’éviter les goulots d’étranglement.
15-‐03-‐25
5
Département de génie logiciel et des technologies de l’information
Attributs de qualités
• Élasticité ! augmenter linéairement la capacité du
système en ajoutant de nouvelles instances de chaque composante.
! Shared Nothing Architecture SN
Département de génie logiciel et des technologies de l’information
Attributs de qualités
• Disponibilité ! L’usage d’une grande quantité de serveurs
à moindres couts implique que les pannes sont généralement plus fréquentes. Le système doit prendre cela en compte de façon automatique et offrir un service continu.
15-‐03-‐25
6
Département de génie logiciel et des technologies de l’information
Système NOSQL
• Pour supporter ce nouveau modèle, il faut sacrifier : ! La garantie ACID (transaction) ! Les requêtes complexes (JOIN)
Département de génie logiciel et des technologies de l’information
Lecture vs écriture
• Effectuer les opérations d’écriture en lots optimise grandement l’usage du disque. Cependant, ceci ralentit beaucoup les opérations de lectures.
• Inversement, écrire immédiatement l’information prend plus de temps, mais accélère la lecture.
15-‐03-‐25
7
Département de génie logiciel et des technologies de l’information
Latence vs durabilité
• Écrire les données en mémoire réduit la latence, mais le risque de perte de données est beaucoup plus grand.
• Attendre l’acquiescement de plus d’un serveur beaucoup plus sûr, mais, augmente considérablement la latence.
Département de génie logiciel et des technologies de l’information
Réplication synchrone vs asynchrone
• La réplication synchrone assure que chaque nœud possède la même version de chaque donnée. Ceci augmente la latence, mais assure la cohérence des données
• La réplication asynchrone va éventuellement assurer la cohérence
15-‐03-‐25
8
Département de génie logiciel et des technologies de l’information
Compromis
Disponibilité
Cohérence Tolérance aux partitions
Disponibilité & Cohérence SGBD
Disponibilité & Partitions Dynamo (Amazon) Cassandra (Facebook) CouchDB
Cohérence & Partitions BigTable (Google) MongoDB Hbase
Département de génie logiciel et des technologies de l’information
Compromis
15-‐03-‐25
9
Département de génie logiciel et des technologies de l’information
Le SGBD
• Notons que dans la majorité des cas, le SGBD répond aux besoins. ! Il existe des approches comme le
« Sharding » qui permet de répartir les données de façon à supporter un plus grand débit opératoire
Département de génie logiciel et des technologies de l’information
Le SGBD
• Dans certains cas, où on manipule des TB de données (à travers divers serveurs) et on désire offrir des réponses en temps réel, le SGBD ne fournit pas.
15-‐03-‐25
10
Département de génie logiciel et des technologies de l’information
Mise à l’échelle
• Les approches NOSQL ne sont pas plus rapides que les SGBD relationnels.
• Elles sont capables de répondre à une charge beaucoup plus importante.
Département de génie logiciel et des technologies de l’information
Mise à l’échelle
Ref: http://research.yahoo.com/node/3202
Majoritairement des opérations d’écritures
Majoritairement des opérations de lectures
15-‐03-‐25
11
Département de génie logiciel et des technologies de l’information
NOSQL
Devrait s’appeler NOREL (no relational), car plusieurs systèmes NOSQL offrent un langage fort similaire à SQL.
! CQL, HiveQL
Département de génie logiciel et des technologies de l’information
Les systèmes NOSQL
« Lorsque la taille des données est colossale et que les contraintes temps réelles sont plus importantes que la cohérence des données » Exemple : pour indexer un grand nombre de documents.
15-‐03-‐25
12
Département de génie logiciel et des technologies de l’information
SQL vs NOSQL
23
Une table est séparée, verticalement en colonnes (columns) et horizontalement en rangées (rows). L’intersection d’une colonne et d’une rangée se nomme champ (field) et contient une valeur.
Ref image : http://www.chesshouse.com/Double_Drawer_Chess_Table_in_Golden_Rosewood_White_p/ct9642.htm
SQL NOSQL
Une table est séparée, verticalement en colonnes (columns) et horizontalement en rangées (rows). L’intersection d’une colonne et d’une rangée se nomme item et contient une paire clé-valeur (key-value pair).
Département de génie logiciel et des technologies de l’information
SQL vs NOSQL
• Une clé primaire est la colonne utilisée pour identifier distinctement chaque rangée de la table. ! Ces valeurs sont uniques (non
nulles) ! Note: Les valeurs numériques
(index) sont plus efficaces.
24 GTI660: Introduction aux DBMM
• Une clé de hachage est l’item utilisé pour identifier distinctement chaque item de la table. ! Ces valeurs sont uniques (non
nulles)
SQL NOSQL
15-‐03-‐25
13
Département de génie logiciel et des technologies de l’information
Key-value store
• Paire clé-valeur • Item : regroupement de paires clé-
valeurs • Table : regroupement d’items • Primary key ou hash key (indexé) • Range key
Département de génie logiciel et des technologies de l’information
SQL vs NOSQL
id nom -- --- 1 Pirate 2 Monkey 3 Ninja 4 Spaghetti
« id » = « 1 » « nom » = « Pirate »
« id » = « 2 » « nom » = « Monkey »
« id » = « 3 » « nom » = « Ninja »
« id » = « 4 » « nom » = « Spaghetti »
SQL
NOSQL
15-‐03-‐25
14
Département de génie logiciel et des technologies de l’information
NOSQL requêtes limitées
• Si « id » est la clé de hachage alors c’est le seul item sur lequel on peu faire des recherches
« id » = « 1 » « nom » = « Pirate »
« id » = « 2 » « nom » = « Monkey »
« id » = « 3 » « nom » = « Ninja »
« id » = « 4 » « nom » = « Spaghetti »
Département de génie logiciel et des technologies de l’information
Cohérence (Système NOSQL)
• Transactions limitées à un item • Plus d’un serveur doit acquiescer
l’insertion d’une entrée
15-‐03-‐25
15
Département de génie logiciel et des technologies de l’information
Cohérence éventuelle
• La cohérence du système s’établit après un certain temps.
• La cohérence n’est pas garantie de façon immédiate après l’ajout des données ! Il faut laisser du temps aux nœuds pour se
synchroniser et harmoniser leurs données.
Département de génie logiciel et des technologies de l’information
Système hybride
• On conserve le SGBD pour l’information critique
• On utilise une approche NOSQL pour l’information beaucoup moins importante, mais qu’on doit gérer en gros volumes
15-‐03-‐25
16
Département de génie logiciel et des technologies de l’information
Système hybride
• Exemples: magasin de livres enligne ! SGBD : Les comptes clients (carte de
crédit…) • La cohérence de cette information est cruciale • Cette information est beaucoup moins sollicitée
! NOSQL : Les critiques de livres, les caractéristiques textuelles extraire des descriptions de livre pour faire de recommandations…