22 avril 2009 par pébé
Monty, un des fondateurs de MySQL, a quitté SUN/MySQL il y a quelques mois et à depuis fondé Monty Program AB la société dernière MariaDB. Il a écrit une très grande partie du code de MySQL. Ce qui m’avait impressionné la première fois ou je l’avais rencontré c’est qu’il connaît le code source presque par coeur. Vous lui dites, « j’ai un problème à cet endroit »… en quelques minutes, il est capable de savoir de quel partie du code cela vient. Impressionant.
Autre chose sur Monty, il a 3 enfants:
- sa fille My – MySQL
- son fils Max – MaxDB
- sa fille Maria – moteur de stockage Maria – MariaDB
des choses comme celles là ne s’inventent pas.
Revenons sur MariaDB, c’est la version communautaire de MySQL 6.0 qui utilise par défaut le moteur de stockage Maria, mais supporte aussi InnoDB, XtraDB, PBXT,…
Maria est une évolution de MyISAM, au départ développé pour palier les problèmes de corruptions de MyISAM. Au final, ce moteur présente bien des avantages au niveau des performances, montée en charge et fiabilité sans compter des nouveaux types d’index pour les requêtes de type SCAN.
MariaDB est quelque chose à surveiller de très prêt.
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
22 avril 2009 par pébé
La conférence Percona à débuté aujourd’hui. Le maître de cérémonie Peter Zaitsev a encore une fois fait une présentation très intéressante sur les limites actuelles et comment les dépasser et a insisté sur les choix à faire:
- performance vs features
- performance vs consistency
- performance vs hardware
- performance vs power consumption
Des slides à ne pas rater, je vous tiendrai au courant quand elles seront disponibles sur le web.
Mots-clefs : percona
Publié dans User Conference 2009 |
22 avril 2009 par pébé
Si vous êtes un MAC addicted comme moi, vous connaissez l’outil Time Machine d’Apple qui permet de faire des sauvegardes ( idéalement avec la Time Capsule ). L’outil attendu depuis des années pour faire des backup/restoration, surtout des « Point in time recovery » qui permet de revenir exactement à une période dans le temps.
Le concept est simple:
- backup à chaud avec enregistrement des positions des binlogs
- backup des binlogs
La console Web permet de gérer tout cela et de programmer les prises de backup. C’est basé sur l’outil MySQL Backup disponible avec la 6.0.
Les étapes:
- backup sur le server
- backup data copié sur le TM server
Personnellement je trouve l’idée très intéressante maintenant, est ce un vaporware? est ce dispo pour la prod? A voir.
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
22 avril 2009 par pébé
Trop c’est trop. Déjà à l’époque,nous devions choisir entre un nombre incalculable de sessions… En effet sans compter les keynotes, il y avait 8 presentations en parallèle. Nouveauté cette année, en plus des sessions « standard », le MySQL camp et la conférence performance de Percona. Evidemment les horaires ne correspondent pas, et je vais devoir courir d’une salle à l’autre. Ceci sans compter les rendez-vous et les discussions de couloir…
Ce matin, j’ai zappé le keynote MySQL pour aller voir celui de Peter ( Percona ), suivi par une présentation de MariaDB… un café avec Jay Pipes, ancien manager de la communauté US et maintenant développeur pour drizzle…. puis de retour à la conf pour suivre « Build Your Own MySQL Time Machine » et « Using Q4M: A Message Queue Storage Engine for MySQL »… puis direction Percona pour voir « Your Disk Array is Slower Than it Should Be » de Paul Tuckfield / YouTube qui avait donné un excellent keynote l’année dernière…. enfin rendez-vous avec Andy Oram avec qui j’avais travaillé pour High Perfomance MySQL ( Technical Reviewer )…
Je n’ai pas encore décidé la suite de la journée… Je ne veux pas avoir l’air de me plaindre car j’apprécie la chance d’être là, mais c’est loin d’être des vacances si vous voulez tout suivre.
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
22 avril 2009 par pébé
Dathan s’est fait connaître en étant le DBA de Flickr. Il travaille maintenant pour Rockyou sur des problèmatiques de gros volumes travaillant essentiellement avec des réseaux sociaux.
- connaître ses données ( comment elles sont ajoutées, accédées, grossies? qui sont les utilisateurs les plus actifs? )
- connaître l’application & le hardware
- connaître les problèmes ( I/O, coût, pas de downtime, … )
Les techniques:
- Federation
- Sharding
- utilise XtraDB
Les chiffres
- 4.4 billions transactions a day – 100k TPS
- 25T data
- 35k memcache gets a sec
- 10M active users
- 99.999% uptime
- …
Publié dans User Conference 2009 |
22 avril 2009 par pébé
Je connais Paul depuis maintenant quelques années, quand PBXT était seulement un petit projet qu’il avait commencé tout seul en parallele de son activité principale. 3 ans après, PBXT est un moteur de stockage qui concurrence InnoDB. Il va nous présenter l’histoire de PBXT, les challenges qu’il a dû remplir et les prévisions sur l’avenir.
PBXT est disponible pour MySQL, MariaDB et Drizzle.
Les challenges
- CPU – Le nombre de coeurs augmente mais la vitesse reste stable
- Plus de CPU -> plus de contention
- minimize les mutex
- segmentation
- read lock
- atomic
- bus contention
- SSD – no seek time
- le cluster des data n’est plus essentiel
Les Bases – un record avec une taille fixe + un record avec une taille variable
Les performances de la dernière version de PBXT ( 1.0.8 ) sont aussi bonnes que celle d’InnoDB avec 16 threads en parallele. Qu’est qui à changé?
Lire le reste de cet article »
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
22 avril 2009 par xavier
Philippe fait partie de l’équipe MySQL QA . Il présente une méthode utilisant Random Query Generator afin de créer des jeux de test les plus exhaustifs possibles pour valider le bon fonctionnement d’une base de données.
Le paramétrage se fait en analysant un langage relativement simple. Random Query Generator permet de générer un rapport d’erreur d’exécution qui va au-delà du scope de l’application. Cet outil utilisé parallèlement au Query Analyzer permet d’avoir un maximum d’information afin d’augmenter les performances de la base.
En allant jusqu’au crash du serveur nous allons pouvoir tester la récupération des données. La solution est Multi plateforme (Linux, Solaris, Windows), très largement paramétrable mais à mon avis extrêmement phagocyteur de temps au moment de la génération du jeu d’essai. A tester aussi sur des tests de non régression.
Vous pouvez trouver Random Query Generator sur
http://launchpad.net/ranggen
et la documentation sur :
http://forge.mysql.com/wiki/Random_Query_Generator
Mots-clefs : Random Query Generator
Publié dans MySQL, User Conference 2009 |
21 avril 2009 par pébé
Boris et Dan nous présentent l’architecture de Zimbra composée entre autres d’un server ZCS, de Java Jetty, d’OpenLDAP, de MySQL 5.0, de fichiers de stockage et de Lucene.
Quelques chiffres pour chaque serveur :
- 95k mailboxes
- 11M message
- 530k messages a day
- 464k SOAP request per day
- 6.4M POP requests per day
Le serveur type est un quad core, 32G RAM
- ZCS a sa propre architecture pour gérer les REDO
- backup tout en une fois ( filesystem, database, ldap )
- restore – load le dernier backup and rejoue tous les REDO
- ZCS redo log – incrémental restore
Problèmes et solutions:
- Les tags d’un utilisateur sont stockés sur 1 seul entier ( 64 bits ) – évite les jointures
- trier les messages de la mailbox – ils utilisent les HINTS
- data partitionning – les différents tests
- 1 table pour tous les users
- 1 database par users ( limité par le filesystem )
- 100 databases with X mailboxes in it
Wrap up:
- 40M mailboxes – ( payant )
- problème de perf IMAP
- Migration lente
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
21 avril 2009 par pébé
John travaille pour le site eMapSite et est spécialisé dans la GIS ( Système d’information géographique ). Pour plus de détail sur le concept, je vous laisse lire la définition sur wikipedia. Les SGBDs qui se sont intéréssés à ce genre de données ont été Oracle et Postgres et maintenant MySQL. MySQL a rattrapé son retard dans le domaine.
L’idée est de découper la carte en carrés contenant le plus petit objet possible. Les index R-Tree ont été développés à cette occasion, liant les « carrés » entre eux. Charger des données en base prend généralement beaucoup de temps. John utilise un trick assez sympa. Un trigger après insertion sur une table blackhole qui calcule ensuite les données GIS et les insère dans la table adéquate.
MyISAM est le seul moteur à supporter les index r-tree. Afin d’éviter des problèmes de concurrence, vous pouvez utiliser un master en InnoDB et des slaves en MyISAM.
John nous a présenté les différentes fonctions GIS de MySQL et je dois dire que c’est assez compliqué. Les requètes sont complexes et bon, il serait temps que je révise mes notions de trigonométrie…
Mots-clefs : MySQL Conference
Publié dans User Conference 2009 |
21 avril 2009 par pébé
Vous ne pouvez pas utiliser MySQL sans connaître Jeremy. Ancien Yahoo! il a été l’un des premiers à utiliser MySQL pour Yahoo! Finance et est co-auteur de MySQL High Performance, la 1ère édition. Après des années à avoir travaillé et évangélisé MySQL, Jeremy fut un responsable du développement du YDN. Il a décidé, il y a quelques temps de retourner dans la sphére de MySQL en devenant expert pour Craig List. Un de ses premiers challenges chez CL, a été d’optimiser les FULL TEXT search.
Les challenges chez CL:
- high ad churn rate – la durée de vie des annonces sur le site. Vous ne voulez plus recevoir de mails sur un item déjà vendu
- croissance
- trés gros traffic
- outil d’analyse & backend
- croissance ( et oui )
- besoin d’archiver tous les messages ( 100s de milions ) et pour toujours
- Internationalisation& utf8
Les briques logicielles sont:
- Load Balancer
- Read Proxy ( Perl + Memcached ) & Write Procxy
- Wed Read Proxy ( apache / mod_perl )
- Object Cache ( Perl / Memcached ) & Search Cluster ( Sphinx )
- Read DB Cluster ( MySQL 5.0 )
Toutes les datas sont en clusters avec un content specifique – User DB, Stats, Archive, Classified, Forum
Full Text Search chez CL en quelques points
- partition par ville
- attributs vs keywords
- connections persistantes
- 2 clusters ( 1 master, 4 slaves )
- indexing incremental
- slaves – requètes live
- 1000 QPS
- 25 MySQL -> 10 Sphinx
- recherche alentour
- 50M QPD ( par jour )
- archive des messages – une DB sans schema – couchdb?
Mots-clefs : MySQL, MySQL Conference
Publié dans MySQL, User Conference 2009 |