Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 48
  1. #1
    Responsable Actualités

    Avatar de Hinault Romaric
    Homme Profil pro Hinault Romaric
    Consultant
    Inscrit en
    janvier 2007
    Messages
    3 770
    Détails du profil
    Informations personnelles :
    Nom : Homme Hinault Romaric
    Localisation : Cameroun

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 3 770
    Points : 50 868
    Points
    50 868

    Par défaut MemSQL : un SGBD résidant en mémoire

    MemSQL : un SGBD résidant en mémoire
    30 fois plus rapide que les systèmes existants, développé par des anciens de Facebook

    Deux anciens développeurs de Facebook ont créé un nouveau gestionnaire de bases de données qui serait, selon eux, le plus rapide du monde.

    Baptisé MemSQL, le système s’appuie essentiellement sur le stockage des données en mémoire afin de réduire le temps de latence en évitant les lectures et écritures sur les disques durs. Cette caractéristique permet au SGBD, d’après ses créateurs, d’être 30 fois plus rapide que les SGBD standards.

    Une vidéo de présentation a été publiée par ses auteurs, fournissant une démonstration des performances de MemSQL par rapport à MySQL. Alors que MySQL exécute 3 500 requêtes par seconde pour une séquence de requêtes, MemSQL en exécute environ 80 000 par seconde.

    MemSQL s’affranchit de la lenteur d’un interpréteur SQL en transformant les requêtes SQL en code C++, qui est ensuite compilé dans un « squelette » ou tous les littéraux sont remplacés par des espaces réservés. Si la même requête est exécutée une seconde fois avec des paramètres différents, le serveur accède au modèle existant et remplace les espaces réservés par leurs valeurs réelles.

    MemSQL est entièrement compatible avec MySQL, et peut être interrogé à partir des interfaces disponibles pour celui-ci. L’outil mysqldump peut également être utilisé pour exporter les données, et les importations se font par la lecture d’un fichier d’exportation.

    L’édition développeur est disponible gratuitement en téléchargement pour Linux 64 bit, et le SGBD est décrit comme idéal pour les machines disposant d’un processeur multi-cœur et au moins 8 Go de RAM. L’outil manque encore pour l’instant des fonctionnalités comme les vues, les procédures stockées et les triggers.


    Télécharger MemSQL


    Source : MemSQL.com


    Et vous ?

    Que pensez-vous de MemSQL ? Et du concept de stockage en mémoire utilisé par le SGBD ?
    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog Mes articles
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre éclairé
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 294
    Points : 359
    Points
    359

    Par défaut

    J'avoue ne pas avoir très bien compris le concept. On est pas simplement dans un système de cache mémoire?

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro Olivier
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 067
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 067
    Points : 6 856
    Points
    6 856

    Par défaut

    MemSQL s’affranchit de la lenteur d’un interpréteur SQL en transformant les requêtes SQL en code C++, qui est ensuite compilé dans un « squelette » ou tous les littéraux sont remplacés par des espaces réservés. Si la même requête est exécutée une seconde fois avec des paramètres différents, le serveur accède au modèle existant et remplace les espaces réservés par leurs valeurs réelles.
    Ça ressemble quand même beaucoup aux requêtes préparées que l'on trouve sur à peut près tous les autres SGBD non ?

    Une vidéo de présentation a été publiée par ses auteurs, fournissant une démonstration des performances de MemSQL par rapport à MySQL. Alors que MySQL exécute 3 500 requêtes par seconde pour une séquence de requêtes, MemSQL en exécute environ 80 000 par seconde.
    Le test à donc été évidemment été effectué avec requête préparées et base MEMORY pour mysql ?

  4. #4
    Rédacteur/Modérateur



    Homme Profil pro Thomas Levesque
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 185
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas Levesque
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 185
    Points : 36 614
    Points
    36 614

    Par défaut

    Seul "petit" problème : quand on coupe le courant, on perd les données
    Enfin, j'ose espérer qu'ils ont quand même prévu un système de persistance...

  5. #5
    Membre habitué
    Homme Profil pro Abdelilah amezghal
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Nom : Homme Abdelilah amezghal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : février 2006
    Messages : 79
    Points : 133
    Points
    133

    Par défaut

    mysql dispose d'un moteur de stockage MEMORY, ca serait bien de comparer les perfs avec. (surtout que memsql ne supporte pas les triggers ni procedures stockées).
    l'avantage c'est que il compile les requêtes en code c++, et évite les phases lexing/parsing.

    A tester en tout cas.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 73
    Points : 144
    Points
    144

    Par défaut

    Et voila l'article qui démonte cette techno qui se rélève au final pas encore mature, incapable d'être ACID et performante à la fois et surtout benchmarkée un peu n'importe comment, tout est dit ici : http://dom.as/2012/06/26/memsql-rage/

  7. #7
    Expert Confirmé

    Développeur NTIC
    Inscrit en
    janvier 2011
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 24

    Informations professionnelles :
    Activité : Développeur NTIC
    Secteur : Biens de consommation

    Informations forums :
    Inscription : janvier 2011
    Messages : 1 494
    Points : 2 977
    Points
    2 977

    Par défaut

    Citation Envoyé par tomlev Voir le message
    Seul "petit" problème : quand on coupe le courant, on perd les données
    Enfin, j'ose espérer qu'ils ont quand même prévu un système de persistance...
    Exactement ce que j'étais en train de me dire. Enfin, sauf s'ils ont prévu une sauvegarde automatique toutes les x minutes.

  8. #8
    Invité de passage
    Inscrit en
    janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : janvier 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    Citation Envoyé par grunk Voir le message
    Le test à donc été évidemment été effectué avec requête préparées et base MEMORY pour mysql ?
    Pour l'enfoncer, j'imagine qu'ils utilisent InnoDB avec un "my-small.cnf"

    Mais un "SGBD résidant en mémoire", c'est un peu un pléonasme vu qu'un programme tourne toujours en mémoire. C'est juste la BDD en tant que tel qu'on veux en mémoire afin de réduire la latence d'accès.
    Et pour le stockage des "squelettes", ça semble être exactement la même chose que les requêtes préparées...

  9. #9
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 026
    Points
    3 026

    Par défaut

    l'avantage c'est que il compile les requêtes en code c++, et évite les phases lexing/parsing.
    Oui c'est ce qu'ils disent dans la vidéo: c'est la génération de code C++ a partir de la requete SQL qui fait la vrai différence, même si evidemment garantir d'avoir "toute" (j'imagine que non) la BDD en mémoire vive joue aussi un role, avoir la requette executable en natifé optimisé au runtime c'est certainement sacrément efficace.

    En revanche avec des BDD immenses ça doit pas mal saturé quand les manips de cache commencent a se faire...

    Seul "petit" problème : quand on coupe le courant, on perd les données
    Sur le site ils disent que les résultats des transactions sont bien enregistrées sur le disque une fois la transaction validée, donc non.

    De ce que je comprends, il faut plutot voir la BDD en mémoire comme le reflet optimisé des données, pas comme une BDD seulement en mémoire.

    Autrement dis, c'est un très gros cache optimisé par requete.


    Pour la compilation de la requete, dans la vidéo on voit le résultat et effectivement c'est suffisament simple pour que ça compile très vite, surtout si leur systeme se base sur, par exemple, llvm/clang. Du coup je trouve que c'est pas mal interessant.

    J'en ai pas besoin actuellement mais je note dans les alternatives a mysql...

  10. #10
    Membre actif
    Homme Profil pro Jonathan Honoré
    Développeur informatique
    Inscrit en
    octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Nom : Homme Jonathan Honoré
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2005
    Messages : 92
    Points : 155
    Points
    155

    Par défaut

    J'ai quelques interrogations tout de même.
    (Attention, SGBD n'est pas ma matière favorite)


    Comment garantir des transactions sans aucun Lock ?
    Le buffer (ce qui est en RAM) fait 128 Mo. Si pendant que tu écris dans le buffer la machine crashe, tu as perdu au max 128 Mo !

    Si tu utilises un autre "mode" de leur buffer qui écrit sur le disque toutes les 50ms. Tu perds l'avantage de l'écriture en RAM puisqu'en fait tu écris sur le disque tout le temps.

    Pour les compilations des mêmes requêtes. Je ne suis pas sur de moi mais MS SQL fait ça déja (2 fois la même requêtes, la seconde va plus vite parce que MS SQL l'a gardé quelque part)


    Enfin bref, à voir. Mais les annonces sont peut-être un peu trop "youpi c'est la fête ! "
    ça marche sûrement dans le contexte Facebook, mais faut bien étudier les autres alternatives à mon avis.


    Edit : tombé sur le même lien que skyserver : http://dom.as/2012/06/26/memsql-rage/ à lire.

  11. #11
    Membre éclairé Avatar de rt15
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2005
    Messages : 204
    Points : 386
    Points
    386

    Par défaut

    D'après le lien de spyserver, il y a différent modes pour les transactions.
    Dans un premier mode (par défaut), la transaction retourne "ok" avant l'écriture sur disque.
    Dans un deuxième mode, la transaction retourne "ok" après l'écriture sur disque.

    Dans tout les cas, l'écriture sur disque en elle même est réalisée... Par un thread en background toute les 50ms.

    Dans le premier mode, on a pas vraiment des transactions : Si la bdd ou machine plante, on a pas les données sur le disque. Cela dit ça doit être rapide c'est sûr lol (Pas d'accès disque).
    Dans le deuxième mode, la transaction est longue, très certainement largement plus longue qu'avec une bdd classique.

    Bref, utilisée avec le premier mode, cette base n'est pas fiable, ou du moins pas du tout rigoureuse. Le deuxième mode est sans intérêt niveau perfs.

    Dans le secteur banquaire, cette base ne vaudrait rien. Mais c'est sûr que comme précisé dans le blogs, pour stocker des commentaires publiés sur facebook, c'est tout à fait suffisant, lol. Si on en perd deux trois en cas de crash, c'est pas la mort.

    Par contre, si elle est si rapide qu'elle le prétend elle aurait pu s'avérer intéressante pour faire passer des tests à un programme sur un poste de développeur par exemple (Hop, les junits dopés). Mais pour ça faudrait qu'elle supporte une bonne partie des fonctionnalités classique comme les vues et les procédures stockées... Ce qui n'est pas le cas.

    Bref, à surveiller, mais pour le moment, poubelle.

  12. #12
    Modérateur

    Homme Profil pro Fabien
    Ingénieur d'études en décisionnel
    Inscrit en
    septembre 2008
    Messages
    6 816
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en décisionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2008
    Messages : 6 816
    Points : 13 485
    Points
    13 485

    Par défaut

    Une pâle copie d'une technologie qui a déjà plus de dix ans ?
    http://www.oracle.com/technetwork/pr...iew/index.html

  13. #13
    Invité régulier
    Inscrit en
    mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 15
    Points : 9
    Points
    9

    Par défaut Que se passe t'il lors de la coupure du courant?

    Si les données sont stockés en mémoire pour longtemps, on risque de perdre un grande volumétrie de données en cas de coupure de courant par exemple.
    Il y a déjà des SGBD in Memory tel que HSQLDB.

  14. #14
    Membre éclairé
    Homme Profil pro Stéphane
    Consultant Ingenierie mécanique
    Inscrit en
    mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant Ingenierie mécanique
    Secteur : Transports

    Informations forums :
    Inscription : mars 2006
    Messages : 219
    Points : 344
    Points
    344

    Par défaut

    Des BD Memory yen a beaucoup et forcément c'est très rapide genre : http://www.garret.ru/fastdb.html.

    De la à dire que leur version est la plus rapide du monde...
    Encore un coup de pub sans comparatif exhaustif avec un titre accrocheur

  15. #15
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 026
    Points
    3 026

    Par défaut

    Le problème c'est que l'argument de rapidité n'est pas lié, sur leur site, à la mémoire, mais à la génération de la requete en C++. L'article ici est trompeur parcequ'il met la mise en mémoire en avant alors que c'est bien cette requete générée qui est censé faire la différence. Il suffit d'aller sur le site, c'est le seul argument qu'ils donnent pour expliquer la différence entre leur BDD et d'autres.

    Ca serait cool de voir des benchmarks oui.

  16. #16
    Expert Confirmé Sénior
    Avatar de transgohan
    Homme Profil pro Baptiste ROUSSEL
    Développeur Temps réel Embarqué
    Inscrit en
    janvier 2011
    Messages
    1 729
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste ROUSSEL
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : janvier 2011
    Messages : 1 729
    Points : 4 225
    Points
    4 225

    Par défaut

    Pour ceux qui ne comprennent pas l'utilité d'un tel SGBD vous pourrez trouver des projets embarqués qui nécessitent du lourd traitement de données auquel le SQL se prête bien (exemple d'actualité : le data-mining des trains de la RATP).
    De ce fait pour la rapidité et la taille il est souvent très intéressant d'utiliser ce genre de SGBD.
    Ce n'est donc pas utilisé pour du stockage à long terme mais pour du calcul sur des jeux de données.
    Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.

  17. #17
    Expert Confirmé Sénior
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 706
    Points : 6 275
    Points
    6 275

    Par défaut

    La comparaison faite avec mySQL ne pourrait vraiment être valide que si les settings étaient comparables ou tout au moins les chances de retrouver un état consistant en cas de panne soient égales (en gros que chaque transaction commitée soit 100% récupérable).

    Et il semble, si on se fie à ce qui est avancé dans l'article qu'un autre membre a cité, qu'en fait, dès qu'on veut utiliser memSQL avec des settings qui assure la même sécurité de données en cas de crash que mySQL, on perd tout le gain.

    Donc en fait, ce memSQL pourrait être intéressant si on veut privilégier la vitesse au détriment de la sécurité, c'est parfois acceptable sur certains jeux de données qui tournent très vite où l'on peut s'autoriser des pertes mineures en cas de problèmes.

    Ainsi donc, il s'agirait plutôt d'un tradeoff mémoire-vitesse-ACIDité différent plutôt que d'une techno révolutionnaire. Enfin sauf peut être pour cette question de requête C++ mais cela m'étonnerait que les performances soient réellement limitées par ça dans la majorité des cas..

  18. #18
    Membre expérimenté
    Développeur
    Inscrit en
    mars 2012
    Messages
    479
    Détails du profil
    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mars 2012
    Messages : 479
    Points : 550
    Points
    550

    Par défaut

    Toutes les données ne sont pas stockées en ram mais probablement certaines données pertinentes (ref data) et les requêtes compilées, index...

    Ca me fait penser à la compilation LINQ.

  19. #19
    Expert Confirmé Sénior
    Avatar de transgohan
    Homme Profil pro Baptiste ROUSSEL
    Développeur Temps réel Embarqué
    Inscrit en
    janvier 2011
    Messages
    1 729
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste ROUSSEL
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : janvier 2011
    Messages : 1 729
    Points : 4 225
    Points
    4 225

    Par défaut

    Citation Envoyé par hotcryx Voir le message
    Toutes les données ne sont pas stockées en ram mais probablement certaines données pertinentes (ref data) et les requêtes compilées, index...

    Ca me fait penser à la compilation LINQ.
    Non non c'est bien en mémoire vive, sinon l'auteur aurait du mal à justifier les 8gio de mémoire vive nécessaire au fonctionnement.
    Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.

  20. #20
    Membre expérimenté
    Développeur
    Inscrit en
    mars 2012
    Messages
    479
    Détails du profil
    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mars 2012
    Messages : 479
    Points : 550
    Points
    550

    Par défaut

    donc les besoins en RAM augmente avec la taille de la db

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •