Quelques réflexions sur le futur des bases de données

Slides:



Advertisements
Présentations similaires
Les technologies décisionnelles et le portail
Advertisements

GEF 435 Principes des systèmes d’exploitation
Ispirer Systems Présentation de la Société Copyright (c) Ispirer Systems Ltd. Tous Droits Réservés.
C#3 et le projet Linq Mitsuru FURUTA
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Microsoft Office Groove Le contexte Une utilisation des postes de travail en très grande évolution chez les professionnels. Des lieux de travail.
Le Grid Computing Par Frédéric ARLHAC & Jérôme MATTERA.
CLUSTERING Grappe d'ordinateurs.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Oracle Orienté Objet Amanda Evans Mai 2000.
NFE 107 : Urbanisation et architecture des systèmes d'information
Cours Visual Basic pour Application
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Retour sur l'allocation d'espace Exemple sur une table facture (sans les tables associées) N° fact, N° Client, N° Cde, date Cde, date fact, date réglement,
Etude des Technologies du Web services
SECURITE DU SYSTEME D’INFORMATION (SSI)
Développement Rapide dApplications Web avec.NET « Mon premier site »
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Gestion des bases de données
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Microsoft dot Net Extrait du cours. La programmation fenêtrée facile. Une approche objet. Philippe Garraud: Formateur indépendant.
Les systèmes multiplateformes
PROGRAMMATION INFORMATIQUE DINGÉNIERIE II PRO-1024.
Vers un développement ouvert Alexandre Poitras – Développeur indépendant WebÉducation – 24 janvier 2008.
Le moteur SQL Server 2008 R2 par l'exemple (DAT304)
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
Linq & les expressions lambda. L Language In Integrated Q Query.
Nouvelles technologies de système de fichiers dans Microsoft Windows 2000 Salim Shaker Ingénieur de support technique Support technique serveur Microsoft.
Module 8 : Surveillance des performances de SQL Server
A ctiveX D ata O bject avec D elphi Durée 14 heures.
8INF856 Programmation sur architectures parallèles
Plan Définitions et exemples Composants de cluster
Créer des packages.
“Software defined Storage”
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
Introduction à la plateforme .NET
Module 9 : Transfert de données. Vue d'ensemble Présentation du transfert de données Outils d'importation et d'exportation de données disponibles dans.
D. E ZEGOUR Institut National d ’Informatique
9h30 Bienvenue ! 9h45 Les bénéfices de SQL Server pour les Editeurs Philippe Rodriguez, Directeur Division Serveur - Microsoft France Franck Sidi, Architecte.
Cours oracle n°1 Le SGBD ORACLE
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Structure de stockage et relations
ATELIER GENIE LOGICIEL
1 Copyright © Oracle Corporation, Tous droits réservés. Présentation des sous-programmes PL/SQL.
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
2 DryadLINQ Comment passer à l'échelle le traitement de données volumineuses ? Xavier Pillons Principal Program Manager Microsoft Corporation TC301.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
DB2. Universal Database. D. Chamberlin, Morgan-Kaufman Delmal, P. SQL2. INPRES, * A First Course in Database Syst. Ullman, J., Widom, J.,
Module 1 : Vue d'ensemble de Microsoft SQL Server
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
22 Passez à la vitesse supérieure avec Visual Studio 2010 et le framework 4.0 en utilisant la Task Parallel Library 08/02/2010 Vincent Lainé MVP C# Refresh.
Anthropologie des espaces numériques // 1 er Semestre 2008 / 2009 Anthropologie des espaces numériques 1er Semestre 2008 / 2009 Session 7.
Le Langage SQL Introduction
Outil de Supervision Réseau
Architecture Client/Serveur
Lellouche Aaron ITIC Paris
INTRODUCTION EMC Avamar : Sauvegarde et restauration rapides et efficaces grâce à une solution logicielle et matérielle complète. Intégrant une technologie.
Module 3 : Gestion des fichiers de base de données
Séance /10/2004 SGBD - Approches & Principes.
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
1.1: notions de bases de l’informatique
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
IFT 703 Informatique cognitive ACT-R Modèle symbolique et perceptuel
Transcription de la présentation:

Quelques réflexions sur le futur des bases de données DBM205 DBA Day Quelques réflexions sur le futur des bases de données Bernard Ourghanlian Chief Technology & Security Officer Microsoft France

Pour que les choses soient claires… Ces réflexions, même si quelques-unes d’entre-elles sont partagées par certains membres de la communauté des bases de données, n’engagent que moi et ne sauraient préfigurer de manière certaine les évolutions prochaines de la gamme de produits Microsoft dans le domaine des bases de données…

Quelques considérations préliminaires Microsoft SQL Server, comme toutes les bases de données commerciales disponibles aujourd’hui, a été architecturé dans le milieu des années 90 en utilisant les idées développées 30 ans plus tôt sur des prototypes de recherche tels que System R [1] Ingres [2] Ces systèmes ont été construits pour adresser les besoins d’un marché unique de la base de données combinant à la fois les charges de travail de type : OLTP Décisionnel Autres… Ils ont pris en considération les caractéristiques du hardware qui était disponible à l’époque mais, depuis, le panorama du marché, le hardware et du software a beaucoup changé… Astrahan, M., et al., "System R: Relational Approach to Database Management", ACM TODS, 1(2), 1976. Stonebraker, M., et al., (1976) "The Design and Implementation of INGRES", ACM TODS, 1(3), 1976 TODS, 1(2), 1976.

Quelques considérations préliminaires (suite) SQL 7.0 SQL 2000 SQL 2005 SQL 2008 2 4 6 8 Milliard de $ OLTP DW Mixte

Quelques considérations préliminaires (suite) Aujourd’hui, les segments OLTP et Data Warehousing (DW) ont cru substantiellement, ce qui rend plus concevable le fait de construire des moteurs de base de données spécialisés permettant de mieux servir ces segments de marché Stonebraker, M., et al., The End of an Architectural Era (It’s Time for a Complete Rewrite), Proc. VLDB 2007 En fait, cela a déjà eu lieu dans le segment DW, plusieurs startups ayant mise sur le marché leur moteur spécialisé pour la charge de travail DW Ces moteurs spécialisés atteignent de bien meilleures performances sur ces charges de travail que les moteurs d’usage général et créent un peu de perturbation sur ce segment de marché… Ces gains sont obtenus en tirant parti des évolutions du hardware (mémoires plus importantes, bandes passantes mémoire et disque plus élevée), en utilisant des formats de stockage (stockages en colonne et compression de données) et des techniques de traitement qui sont mieux adaptées à la charge de travail DW

L’évolution du hardware Les SGBD actuels ont été conçus en présupposant que les données résideraient sur disque et que les pages disque seraient fréquemment échangées avec la mémoire Toutefois, les prix de la mémoire continuent de baisser…

L’évolution du hardware (suite) Ainsi qu’indiqué, les prix de la mémoire ont été diminués par un facteur 10 tous les 5 ans depuis les 20 dernières années Il est donc virtuellement certain que l’on ne va pas tarder à voir des serveurs « standards » équipés avec un ou plusieurs TO de RAM et/ou de NVRAM dans les prochaines 5 années Or… ceci est suffisant pour stocker la très grande majorité des bases de données OLTP entièrement en mémoire centrale Même pour les plus grandes bases de données OLTP, cela permet de maintenir l’ensemble de travail actif en mémoire ne laissant que les données « froides » et accédées de manière peu fréquente sur un stockage externe

Quelques approches de ce genre Société /Produit Histoire Applications cibles Fonctionnalités clés Birdstep Technology RDM-Raima Data Manager A démarré comme db Vista en 1984 Systèmes embarqués Petit encombrement, API SQL et navigationnelle McObject / ExtremeDB Société privée fondée en 2001 Petit encombrement, SQL Oracle / TimesTen Spin-off d’HP crée en 1996, acquise par Oracle en 2005 Tier applicatif, cache mémoire pour Oracle PL/SQL, synchronisation de données transparente avec Oracle IBM / SolidDB Solid Information Tech. créé en 1992, acquis par IBM en 2007 Tier applicatif, cache mémoire pour DB2 SQL, synchronisation de données transparente avec DB2, Informix VoltDB Startup émergente Marchés financiers, opérations financières avec très faible temps de latence Pas de verrous, les transactions sont exécutées en série Groovy Corp / Groovy SQL Switch Startup créée en 2007 Applications nécessitant une notification rapide des mises à jour Stocke et transmet les mises à jour

OLTP : Vers l’infini et au-delà ? On est donc en droit de se poser les questions suivantes Est-il possible de créer un moteur OLTP 100 fois plus rapide ? Quelles innovations logicielles et architecturales sont nécessaires pour atteindre cet objectif ? Quelles seraient les conséquences d’un tel système sur le segment OLTP du marché de la base de données ? A mon sens, la réponse à la première question est : OUI

Quelques idées de design La base de données est résidente en mémoire ; le stockage externe n’est utilisé que pour les checkpoints et les journaux Toutes les transactions sont compilées en code natif qui opère directement sur le cœur des services du SGBD ; il n’y a pas de code interprété Le moteur utilise un mécanisme de contrôle du parallélisme qui fournit tous les niveaux d’isolation ANSI sans reposer sur du verrouillage Toutes les structures de données sont lock (latch) free – pas de spinlocks, de sémaphores ou de sections critiques visibles Utilisation de lock free hash maps et de skip lists Utilisation du multi-versioning, mécanisme novateur de contrôle de parallélisme optimiste Le moteur est « maigre » : il ne contient que les services nécessaires pour supporter une charge de travail OLTP Le stockage des données et le traitement sont optimisés pour la charge de travail courante, idéalement à travers un outil automatique d’analyse de charge de travail date

Pour aller dans les nuages… Intermède Pour aller dans les nuages…

Explosion du volume de données Exaoctets de données ingérées dans le monde Selon IDC : En 2007 : 281 EO En 2011 : 1800 EO En 2023 : on dépasse le nombre d’Avogadro en bits : 6,023x1023 bits = 7,53x1022 octets Exaoctets Année

Explosion du volume de données Selon IDC : En 2011, le poids des données non structurées dépassera le poids des données structurées dans un rapport 2:1 3,4 EO

L’explosion des données sur Internet Expériences Simulations Archives Littérature Des péta-octets aux exa-Octets

Données et Information What information consumes is rather obvious: it consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention, and a need to allocate that attention efficiently among the overabundance of information sources that might consume it. Herbert Simon

Nouvelle architecture logicielle

Distributed Data-Parallel Computing Problème : Comment écrire des programmes distribués travaillant sur le parallélisme des données pour un cluster de calcul ? Réponse : le modèle de programmation DryadLINQ Abstraction de programmation séquentielle sur une seule machine Le même programme s’exécute sur un seul cœur, une machine multi-cœur ou un cluster Langages de programmation familiers Environnement de développement familier

Dryad Fournit une couche d’exécution distribuée générale et flexible Le modèle utilisé est celui d’un graphe de flux de données Peut être modifié par des optimisations effectuées lors du runtime La couche de langage de plus haut niveau fournit le graphe, le code des nœuds, le code de sérialisation ainsi que des indications concernant la localité des données Gère automatiquement l’exécution distribuée Distribue le code, fait passer les données Ordonnance les processus sur les machines proches des données Masque les défaillances au sein du cluster et du réseau

Un job au sein de Dryad Graphe Acyclique Orienté (DAG – Direct Acyclic Graph) Nœuds de traitement Canaux (fichier, fifo, pipe) Entrées Sorties

Pipe 2-D Pipes Unix : 1-D grep | sed | sort | awk | perl Dryad : 2-D

LINQ Language Integrated Query Extensions déclaratives à C# et VB.NET afin d’itérer sur des collections En mémoire Via des fournisseurs de données SQL-Like Facile à adopter par les développeurs Facile à utiliser Réduit le code à écrire Résultats prévisibles Expérience passant à l’échelle Support intégré avec les outils de développement

PLINQ Parallel Language Integrated Query Proposition de valeur Permet aux développeurs de LINQ de tirer parti d’un hardware parallèle ; avec une compréhension de base du parallélisme Parallélisme de données déclaratif (on se concentre sur le « quoi » plutôt que sur le « comment ») Alternative au mappage LINQ – objets Même ensemble d’opérateurs de requêtes + quelques extras Le défaut est fondé sur IEnumerable<T> Disponibilité sous forme de preview au sein de la CTP des Parallel Extensions to .NET Framework 3.5 Livré depuis le .NET Framework 4.0 Beta 2 ; sera intégré en standard au sein du .NET Framework 4.0

DryadLINQ LINQ dans des clusters Le style de programmation déclarative de LINQ pour les clusters Parallélisation automatique Plan de requête parallèle exploitant le parallélisme multi-nœuds PLINQ (en dessous) exploite le parallélisme multi-cœur Intégration avec Visual Studio et .NET Sureté du typage, sérialisation automatique Optimisation du plan de requête Règles d’optimisation statiques pour optimiser la localité Optimisations dynamiques lors de l’exécution

Apprentissage automatique Pile logicielle … Apprentissage automatique Traitement d’image Analyse de graphe Fouille de données Applications .NET DryadLINQ Dryad HPC Job Scheduler Windows HPC Server 2008 Windows HPC Server 2008 Windows HPC Server 2008 Windows HPC Server 2008

DryadLINQ : De LINQ à Dryad Génération automatique du plan de requête Exécution de requête distribuée par Dryad Requête LINQ Plan de requête Dryad var logentries = from line in logs where !line.StartsWith("#") select new LogEntry(line); logs where select

Une requête LINQ simple IEnumerable<BabyInfo> babies = ...; var results = from baby in babies where baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd orderby baby.Year ascending select baby;

Une requête PLINQ simple IEnumerable<BabyInfo> babies = ...; var results = from baby in babies.AsParallel() where baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd orderby baby.Year ascending select baby;

Une requête DryadLINQ simple PartitionedTable<BabyInfo> babies = PartitionedTable.Get<BabyInfo>(“BabyInfo.pt”); var results = from baby in babies where baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd orderby baby.Year ascending select baby;

PartitionedTable<T> Core data structure for DryadLINQ Container partitionné capable de passer à l’échelle pour les objets Dérive de IQueryable<T>, IEnumerable<T> Méthodes d’extention ToPartitionedTable() Les opérateurs DryadLINQ consomment et produisent PartitionedTable<T> DryadLINQ génère le code pour sérialiser/désérialiser vos objets .NET Le stockage sous-jacent peut être un fichier partitionné, une table SQL partitionnée ou un système de fichiers cluster

DryadLINQ Dans le futur… DyradLINQ sur Azure Disponible aujourd’hui sous la forme d’un téléchargement pour des objectifs tournant essentiellement autour de l’enseignement et de la recherche http://connect.microsoft.com/site/sitehome.aspx?SiteID=891 Dans le futur… DyradLINQ sur Azure

Base de données relationnelle comme un service 32 4/11/2017 10:01 PM Base de données relationnelle comme un service Base de données hautement disponible, autogérée Extension de la plateforme SQL Server Données de référence « Dallas » Synchro de données Reporting Business Intelligence Database © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Nom de code « Dallas » Information as a Service… Découverte d’information - Découvrir, acquérir et consommer des données structurées, non structurées, temps réel afin d’alimenter n’importe quelle application s’exécutant sur n’importe quelle plateforme sur n’importe quel terminal Modèle commercial de courtage – écosystème impulsé par les partenaires afin de fournir données et fonctionnalités aux développeurs et aux consommateurs de l’information Analytics et Reporting – analyse par simple clic afin d’augmenter la richesse des données privées avec des données publiques Mise en œuvre par Windows Azure et SQL Azure

Avènement du 4ème paradigme… Il y a des milliers d’années : La science était empirique décrivant des phénomènes naturels Il y a quelques centaines d’années : Branche théorique utilisant modèles, généralisations Il y a quelques décennies : Branche informatique simulant des phénomènes complexes Aujourd’hui : Exploration des données (eScience) théorie unificatrice, expérience et simiulation Données capturées par des instruments ou générées par des simulations Traitées par du logiciel Information/connaissance stockées dans des ordinateurs Le scientifique analyse la base de données / les fichiers en utilisant de la gestion de données et des statistiques “The impact of Jim Gray’s thinking is continuing to get people to think in a new way about how data and software are redefining what it means to do science." — Bill Gates, Chairman, Microsoft Corporation http://research.microsoft.com/en-us/collaboration/fourthparadigm/default.aspx

Pour continuer sur le futur des bases de données… Retour Pour continuer sur le futur des bases de données…

Au-delà… Aujourd’hui, comme on l’a déjà dit, SQL est un peu vu et vécu comme un langage « unitaille » Cf. la polémique NoSQL (http://nosql-database.org/ et http://cacm.acm.org/blogs/blog-cacm/50678-the-nosql-discussion-has-nothing-to-do-with-sql/fulltext) A l’époque où SQL a été conçu, les segments de marché suivants n’existaient pas : Entrepôts de données, Recherche Web, Analyse en temps réel, Données semi-structurées Pourtant… : Dans le monde des entrepôts de données, pratiquement tous les schémas sont sous la forme d’étoile ou de flocons de neige contenant une fact table centrale avec des jointures 1-n vers les tables de dimensions qui l’entourent, qui peuvent à leur tour participer à d’autres jointures 1-n vers des tables de dimensions de second niveau et ainsi de suite Même si les étoiles et les flocons de neige peuvent facilement être modélisés en utilisant des schémas relationnels, en fait, un modèle entité-relation serait plus simple De plus, les requêtes seraient plus simples si l’on utilisait un tel modèle Enfin, certaines opérations comme le changement de clé d’une ligne dans un table de dimension seraient bien moins coûteuses

Au-delà… (suite) Dans le monde OLTP Personne ne recherche les employés qui gagnent plus que leurs managers… Il n’y a pas de requêtes ad-hoc Personne ne peut donc implémenter un langage moins riche que SQL Pour des raisons de performance, les procédures stockées sont omniprésentes Dans un monde entrepôt de données, on a besoin d’un ensemble différent de SQL puisqu’il y a des requêtes ad-hoc complexes Donc, les différents moteurs de stockage pourraient implémenter des variantes de langage spécifiques au segment de marché qu’ils cherchent à adresser ; ces langages seraient beaucoup plus simples que la complexité intimidante de SQL Repenser SQL permettrait également de corriger un certain nombre de ses erreurs connues depuis deux décennies et peut-être de permettre une intégration propre avec les langages de programmation, en offrant par exemple contrôle de flux, variables locales, etc.

On peut donc imaginer, à moyen terme, la fin de la « taille unique »… Au-delà… (suite) Après tout, si l’on regarde la communauté de langages de programmation, après ce que j’appelle « l’hiver des langages » qui a suivi la sortie de Java, il y a eu une véritable explosion de « petits langages » tels que Python, Perl, Ruby ou PHP (et aussi de « grands » tels que C#, F#,…) L’idée consiste tout simplement à utiliser le meilleur langage disponible pour réaliser une tâche donnée Par ailleurs, les « petits langages » sont attractifs car ils sont plus simples à apprendre que les langages généralistes De plus, dans le champ des langages de programmation, on voit apparaitre de manière de plus en plus significative les DSL (Domain Specific Language) qui, comme leur nom l’indique, sont spécifiques au domaine SQL est un DSL… Pourquoi n’en serait-il pas de même dans le champ des bases de données ? On peut donc imaginer, à moyen terme, la fin de la « taille unique »…

En guise de conclusion… La remise en cause de la « taille unique » Modèle relationnel tel qu’implémenté aujourd’hui inapproprié pour tous les usages Nécessité de repenser les modèles de données et de requêtes pour l’avènement des moteurs spécialisés que l’on peut s’attendre à voir apparaitre de manière significative sur certains segments de marché dans les prochaines années L’arrivée du Cloud Computing et de toute la richesse qu’il revêt La généralisation des machines parallèles … Le futur des bases de données n’a jamais été aussi intéressant ! Par certains côtés, une certaine forme de retour à la période 1970-1985 pendant laquelle l’imagination était au pouvoir car rien n’est écrit…

Votre potentiel, notre passion TM 4/11/2017 10:01 PM Votre potentiel, notre passion TM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.