Web et bases de données : un mariage nécessaire pour faire

publicité
MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives Module 6 : Changement d’échelle et cohérence Les bases de données relationnelles sont mûres : elles ont bientôt cinquante ans. Les bases de données dites NoSQL font figure de « nouveau né » : l’appellation date de 2009. S’agit-­‐il d’une des multiples modes éphémères liées à Internet et au web ? Nous venons de le voir, l’approche relationnelle n’est pas adaptée à l’exploration de réseaux sociaux massifs. Nous allons souligner d’autres limites de l’approche relationnelle. Ces limites ont conduit à développer différentes familles de bases de données NoSQL. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 1 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Une base de données relationnelle représente une réalité pour qu’on puisse agir dessus : commander un produit, écrire ou commenter un billet sur un sujet donné. Une base de données est souvent soumise à des actions concurrentes. S’il reste un seul exemplaire d’un livre donné et que plusieurs clients veulent le commander en même temps, il faut qu’un seul soit servi… et paie. Une transaction est le passage de la base de données d’un état antérieur à la transaction à un état postérieur qui respecte un certain nombre de contraintes. L’acronyme ACID, forgé en 1983, rassemble les propriétés attendues d’une transaction pour le modèle relationnel : •
A(tomicity) – atomicité : soit la transaction est accomplie entièrement, soit pas du tout (et la base reste alors inchangée). Lors d’un retrait de billets dans un distributeur automatique, le client -­‐ tout comme sa banque -­‐ tient à ce que cette transaction s’accomplisse intégralement et ne s’arrête pas en chemin. Ou bien qu’elle ne se fasse pas du tout. •
C(onsistency) – cohérence : une transaction fait passer la base d’un état valide à un autre état valide. La somme des billets retirés doit correspondre au débit mémorisé dans la base. •
I(solation) – indépendance : les transactions concurrentes sont traitées comme si elles étaient exécutées les unes à la suite des autres. C’est le cas de deux opérations « simultanées » de deux personnes sur un compte bancaire commun. •
D(urability) – persistance : une fois une transaction effectuée, son résultat est stocké de manière durable dans la base. Le retrait de billets doit correspondre à un débit mémorisé (et consultable) dans la base. Les propriétés ACID des transactions visent à garantir la cohérence la plus totale possible des données qu’une base contient et le maintien de cette cohérence au fil des opérations auxquelles cette base est soumise. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 2 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about La base de données relationnelle du voyagiste voyages-­‐sncf.fr respecte par exemple ces critères ACID. Et c’est une bonne chose, pour les voyageurs comme pour le voyagiste. Mais cela correspond à seulement 11 millions de visiteurs uniques par mois, de l’ordre de 360 000 par jour : c’est gérable avec une base de données relationnelle . A l’échelle du web, c’est minuscule. Regardons trois services qui ont seulement une dizaine d’années, Facebook, GMail et Twitter. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 3 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Le nombre moyen par jour d’utilisateurs de Facebook -­‐ 890 millions -­‐ est plus important que la population de l’Europe (743 millions de personnes). Le nombre d’utilisateurs actifs de Twitter équivaut à plus de 4 fois la population française, plus de 34 fois celle du Québec. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 4 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Comme le montre la carte des 20 pays les plus utilisateurs de Facebook, il s’agit dans tous les cas d’une utilisation dans le monde entier Ces nombres malmènent l’imagination. Ils questionnent. Peut-­‐on à cette échelle continuer à respecter les critères ACID ? Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 5 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Les données persistantes des bases de données sont le plus souvent précieuses. Vous ne souhaitez pas voir disparaître votre compte en banque et son montant. Un peu comme vous sauvegardez les contacts de votre téléphone intelligent sur votre ordinateur, on utilise la réplication pour les bases de données. Les mêmes données sont présentes sur plusieurs serveurs en même temps. Elles sont mises à jour simultanément. Cette redondance permet de répartir les requêtes sur les serveurs et donc d’améliorer le temps de réponse. Elle permet de remédier aux pannes : un serveur indisponible est remplacé par une réplique ; les données corrompues d’un serveur peuvent être restaurées à partir d’une réplique. Les applications web actuelles de type GMail, Facebook et Twitter se caractérisent par des volumes massifs à traiter, par la répartition mondiale de leurs innombrables utilisateurs, par la nécessité de répondre rapidement et en permanence. Ces contraintes imposent des stockages de données et des traitements répartis sur un grand nombre de machines dispersées dans le monde entier. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 6 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about En 2000, Eric Brewer, de l’université de Californie à Berkeley, a proposé la conjecture suivante. Dans le contexte de tels systèmes fortement distribués, c’est-­‐à-­‐dire où les données ou les traitements sont répartis entre de nombreuses « machines » (appelés les nœuds), il n’est pas possible de respecter à la fois les trois contraintes suivantes, et donc finalement les contraintes ACID : •
Cohérence (Consistency) : tous les nœuds voient les mêmes données au même moment ; •
Disponibilité (Availability) : toutes les requêtes trouvent une réponse ; •
Résistance au morcellement (Partition tolerance) : le système continue à fonctionner malgré les pertes de message ou les défaillances d’une partie des nœuds. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 7 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Les contraintes ACID des bases de données relationnelles laissent place aux contraintes BASE (Basically Available, Soft state, Eventual consistency) des bases de données NoSQL. La notion même de transaction n’est d’ailleurs pas présente dans tous les types de bases de données NoSQL. Par exemple, lorsque quelqu'un poste un tweet , il peut arriver que différents utilisateurs, à différents endroits de la planète, ne le voient pas arriver exactement en même temps parce que la base de données de Twitter est distribuée et qu'il y a des délais de propagation. Poster un tweet n'est donc pas une transaction ACID. On voit d’ailleurs que dans de tels cas, des incohérences temporaires ne constituent pas un problème et que le respect des contraintes BASE suffit. La nécessité de répartir à très grande échelle les traitements et le stockage des données conduit les bases de données NoSQL à donner la priorité à la disponibilité sur la cohérence. L’objectif peut être alors celui d’une cohérence à terme (eventual consistency) : les accès à un élément donné finissent par retourner tous la dernière valeur qui lui a été affectée. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 8 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Crédits •
•
•
[Les 20 premiers pays utilisateurs de Facebook en novembre 2014] "Facebook by Countries" by Julianprescott2604juuly -­‐ Own work. Licensed under CC BY-­‐SA 4.0 via Wikimedia Commons -­‐ http://commons.wikimedia.org/wiki/File:Facebook_by_Countries.png#media
viewer/File:Facebook_by_Countries.png [Distributeur de billets] Par Doudoulolita (Travail personnel) [CC BY-­‐SA 3.0 (http://creativecommons.org/licenses/by-­‐sa/3.0)], via Wikimedia Commons [Réseau avec noeuds] By Calvinius [CC BY-­‐SA 3.0 (http://creativecommons.org/licenses/by-­‐sa/3.0)], via Wikimedia Commons. Benoît Habert, ENS de Lyon, 23 avril 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr/) 9 
Téléchargement