IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NoSQL Discussion :

MemSQL : un SGBD résidant en mémoire


Sujet :

NoSQL

  1. #41
    Membre averti Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 187
    Points : 369
    Points
    369
    Par défaut Oui, et alors ?
    Un SGBD fonctionnant "100%" en mémoire, ce n'est pas le premier, ni le dernier; en 1998, pour les besoins d'un logiciel de généalogie, j'en avais développé un de toutes pièces en c++, il a été porté en 32 puis 64 bits sous Windows et Mac, capable de s'adapter à la quantité de RAM disponible et de maintenir des statistiques sur l'utilisation potentielle des données; en fait, seules les données actives sont en mémoire, le reste est remisé sur disque, au bout du compte c'est un cache "intelligent" travaillant sur les contenus et non les fichiers disques, performant - 97% de hits réussis.
    Ces solutions avec utilisation massive de mémoire sont pratiques quand l'application ne gère pas des terra octets de données, ce qui est très souvent le cas.
    La nature fait des choses extraordinaires, observons la et restons humble, on ne nous demande pas de refaire le monde mais juste de reproduire virtuellement des choses existantes ....

    et n'oubliez pas si vous aimez et quand vous avez la réponse

  2. #42
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Faut vraiment arrêter l'inculture crasse des informaticiens !
    TOUS LES SGBDR fonctionnent exclusivement en RAM. Seule la persistance des données est gérée au niveau disque.
    1) par la journalisation des transactions (en mode synchrone), mais potentiellement peu de données et compressées
    2) par l'écriture des données (en mode asynchrone), ce qui permet de les regrouper et d'éviter d'écrire de multiples versions intermédiaires

    Il est même recommandé pour oracle ou SQL Server de limiter la RAM utilisable par le SGBDR sinon il bouffe toute la RAM disponible.

    Pour PG, c'est l'inverse : il faut lui indiquer sa limite.

    Bref, rien de nouveau, juste un truc mercatique avec en sus je vais plus vite mais vous aurez des chances de perdre vos données !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #43
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Voilà ce que ça fait d'écrire un article qui ne pointe pas sur la vrai information du systeme...

    Allez voir sur le site du projet, ils disent eux-même que le point fort c'est la compilation des requetes en C++, pas la persistence en mémoire. C'est de ça qu'on devrais discuter.

    Toutes ces réactions sont à coté de la plaque.

  4. #44
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Klaim Voir le message
    le point fort c'est la compilation des requetes en C++.
    Je ne suis pas un grand spécialiste du fonctionnement intime des SGBD mais il me semble qu'ils commencent par interpréter le bout de texte, appelé requête SQL, qu'on leur envoie et le triturent à leur sauce dans un langage ultra rapide (C ? C++ ? carrément Assembleur ?) pour exécuter la requête.
    Autrement dit, et sauf erreur par ignorance de ma part, on peut dire en quelque sorte que tout SGBDR qui se respecte "compile" votre requête SQL.
    Rien de nouveau là non plus !

    De plus, dans un bon SGBD, Oracle par exemple, si vous soumettez exactement la même requête, des étapes de "compilation" - analyse syntaxique puis passage à l'optimiseur - seront sautées, ce qui rendra l'exécution de la requête plus rapide. Et je crois que si, en plus, les tables interrogées n'ont pas changé depuis la dernière soumission de la requête, le SGBD n'ira pas les rechercher sur le disque s'il les a encore en mémoire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #45
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Les SGBD interprètent la requête souvent j'imagine ne passant par une structure mémoire (AST - abstract syntax tree pour un compilateur classique, j'imagine de même pour les SGBD, i.e. les plans d'exécutions). Je doute qu'ils compilent ensuite.

    Dans le cas de MemSQL, ils doivent faire un hash de la requête en transformant les littéraux par des paramètres puis voir si ça a déjà été compilé. Dans le cas de MemSQL je doute que la translation de l'AST en code machine soit très utile. Il ne s'agit que d'appeler ensuite des primitives de haut niveau de toute façon.

    Naturellement, ça n'a de sens que pour des requêtes qui s'exécutent vite. Si une requête de complexité classique met plus de 10ms à s'exécuter je pense qu'il n'y a plus d'intérêt à compiler.

    La proposition de StringBuilder sur Linq est intéressante, en effet ce n'est plus du script donc il n'y a pas l'interprétation à faire. Sauf que j'imagine que pour le link à une base SQL, Linq regénère le SQL derrière. Dans tous les cas, Linq étant une techno sur le client, il faut bien communiquer avec le serveur.

  6. #46
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Je ne suis pas un grand spécialiste du fonctionnement intime des SGBD mais il me semble qu'ils commencent par interpréter le bout de texte, appelé requête SQL, qu'on leur envoie et le triturent à leur sauce dans un langage ultra rapide (C ? C++ ? carrément Assembleur ?) pour exécuter la requête.
    Autrement dit, et sauf erreur par ignorance de ma part, on peut dire en quelque sorte que tout SGBDR qui se respecte "compile" votre requête SQL.
    Rien de nouveau là non plus !
    Je pense qu'il doit y avoir le même genre de rapport performance/flexibilité qu'il y a entre, par exemple, Lua et C++. Le même algorithme en C++ sera moins rapide en Lua (qui est tres proche de ce que tu décris, mais reste de l'interpreté, même sous forme de bytecode) mais beaucoup plus facile a manupuler au runtime.

    Donc, en gros, je me dis que ça peut faire une différence, mais c'est vrai que c'est difficile de se rendre compte quoi exactement sans des tests concrets. En fait je trouve ça interessant justement parceque l'idée m'apparait saugrenue et en même temps "pourquoi pas?".

    En tout cas eux ce qu'ils affirment, c'est que c'est la principale source des performances.

  7. #47
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 400
    Points
    7 400
    Billets dans le blog
    1
    Par défaut
    En fait, le vrai seul intérêt du bignou, j'ai l'impression que c'est le remplacement systématique de littéraux par des variables.
    Mais quand le programmeur n'est pas un goret, il utilise des requêtes paramétrées, et l'intérêt est alors caduque.
    On ne jouit bien que de ce qu’on partage.

  8. #48
    Membre confirmé

    Homme Profil pro
    Etudiant
    Inscrit en
    Juillet 2012
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 108
    Points : 573
    Points
    573
    Par défaut
    C'est une SGBD à tester, elle m'a l'air extremement interessant
    Le paradigme de chacun ne dépend pas de lui, mais de son éducation...

    Le mot donne à la pensée son existence la plus haute et la plus noble.
    Spinoza

    Quiconque n'est pas choqué par la théorie quantique ne la comprend pas.
    Niels Bohr

    http://isocpp.org/

Discussions similaires

  1. MemSQL 4 : le SGBD résidant en mémoire disponible
    Par Olivier Famien dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 22/05/2015, 14h29
  2. MemSQL : un SGBD résidant en mémoire
    Par Hinault Romaric dans le forum Décisions SGBD
    Réponses: 46
    Dernier message: 10/07/2012, 09h23
  3. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  4. [Debutant]Problème mémoire et SGBD
    Par ghan77 dans le forum Bases de données
    Réponses: 12
    Dernier message: 12/12/2005, 15h47
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo