22 août 2009 by stephane
Ce week-end a lieu à côté de Bonn l’OpenSQLCamp, en parallèle de la FrOSCon. Giuseppe Maxia nous parle aujourd’hui d’une technique utilisée dans certaines applications à fort trafic : le sharding. Mais à quoi sert le sharding ?
Quand on commence une application, un seul serveur SQL suffit généralement à absorber la charge. Si le trafic augmente et que les performances du serveur commencent à s’écrouler, on peut utiliser la réplication. Mais la réplication ne permet que d’augmenter le nombre de lectures possibles (read scaling) et pas le nombre d’écritures (write scaling). Cette limitation provient du fonctionnement même de la réplication car toutes les écritures doivent arriver sur le serveur maître. On peut alors imaginer de séparer les données selon certaines règles (dépendantes de l’application) de manière à avoir plusieurs masters sur lesquels on peut utiliser la réplication. Et voilà, nous venons d’inventer le sharding.
Giuseppe nous explique que le sharding est simple à mettre en place : il suffit de créer des règles permettant de dispatcher les données entre les différents masters. Malheureusement, le sharding est fragile : si, par exemple, vous changez les règles de dispatch, vous risquez de casser vos shards ! Pour simplifier le sharding, il existe un moteur de stockage récent, installable en tant que plugin pour MySQL 5.1 : Spider. Spider est basé sur le partitionnement et permet de créer des tables sur un serveur dont les données seront stockées sur des hosts distants. En gros, on utilise une pincée de partitionnement et une pincée de Federated…
Les démonstrations faites par Giuseppe montrent quand même que si Spider peut nous simplifier la tâche du sharding, la mise en place de tables avec Spider n’est pas si simple et demande un peu de doigté et de réflexion…
Tags : MySQL, OpenSQLCamp
Publié dans 5.1 | Aucun commentaire »
16 juillet 2009 by pébé
Andy m’avait envoyé le « draft » de cet article assez intéressant sur les bases relationnelles. C’est une réflexion suite à la sortie de l’ouvrage « SQL and Relational Theory: How to Write Accurate SQL Code » de C.J. Date. Je n’ai pas encore lu ce livre mais il semble être un incontournable pour tous ceux qui travaillent sur les SGBD.
Les points importants:
- Tout ce qui est stocké en base est VRAI
- Toutes les opérations reflètent précisément la vrai vie de façon que les résultats qui en résultent en face autant
Je vous laisse découvrir çà… des questions? n’hésitez pas.
Publié dans DBNewz | Aucun commentaire »
15 juillet 2009 by arnaud
Une petite « astuce » pour se remettre dans le bain du blogging… Comme vous avez pu le constater la fréquence de mise à jour a un peu diminuée depuis notre retour de la MySQL Conf, corrigeons cela avec cette petite remise en jambe à classer dans la catégorie « pratique ».
La désactivation du contrôle des clés étrangères est intéressante lorsque vous devez exécuter sur votre serveur MySQL un script de création de tables par exemple. Il se peut dans ce cas que l’ordre de création des différentes tables ne soit pas « logique ».
J’entends par là qu’une table A peut contenir une contrainte basée sur une clé étrangère référençant le champ d’une table B… qui n’existe pas encore ! La « logique » voudrait que les tables soient inscrites dans le script selon les liens qui existent entre elles mais cela n’est pas toujours le cas.
Cette opération de classement pouvant s’avérer fastidieuse à effectuer manuellement, vous pouvez vous affranchir des vérifications effectuées par le SGBD concernant les clés étrangères en utilisant la commande suivante :
mysql> SET foreign_key_checks = 0;
Vous êtes ainsi tranquille le temps de créer vos tables. Réactiver ce contrôle n’est pas plus compliqué :
mysql> SET foreign_key_checks = 1;
Le chapitre de la documentation correspondant aux foreign keys nous indique que c’est d’ailleurs la technique employée par mysqldump.
Tags : pratique
Publié dans MySQL | 5 commentaires »
24 avril 2009 by pébé
Et voilà, 4 jours se sont écoulés et la confèrence MySQL est déjà finie. Elle s’est terminée par un excellent Keynote de l’équipe derriére le site couvrant la campagne d’Obama. Ou comment des gars brillants ont reussi un challenge impressionant en ayant peu de connaissance sur MySQL au départ. Tout à été filmé et je vous conseille de regarder la vidéo. Je la publierai aussi sur le site au cas où. Pour l’instant, je suis encore à la Percona conference qui dure encore quelques heures.
En résumé, ce que je retiens de ces quelques jours:
- Oracle rachéte SUN
- MySQL 5.4
- MySQL Cluster 7.0
- PBXT et son blob streaming add on
- la conférence Percona en parallele
- Drizzle, drizzle, drizzle…
Evidemment, nous reviendrons par la suite un peu plus en détail sur des présentations qui nous ont marqué.
Update : La prochaine MySQL Conf aura lieu du 12 au 15 avril 2010, toujours à Santa Clara.
Tags : MySQL Conference, percona
Publié dans User Conference 2009 | Aucun commentaire »
23 avril 2009 by pébé
DBNewz est le blog sur les SGBD, bien que nous parlions souvent de MySQL, je voulais faire un petit clin d’oeil à CouchDB . CouchDB est un projet de la fondation Apache crée par Damien Katz . J’ai rencontré Damien à l’epoque MySQL et Jan il y a maintenant 2 ans à la conférence 2007. Cela fait plaisir de voir que leur projet avance bien. C’est un petit bijou qui aura bien des usages pour differents types d’applications. CouchDb est un système distribué, qui supporte les pannes et surtout un SGBD dans un schéma orienté documents. Il est accessible par une API en Rest / Http / Json.
Tags : percona
Publié dans User Conference 2009 | 3 commentaires »
23 avril 2009 by pébé
Don est un personage un peu à part dans la communauté. Il est le CEO et Chef Geek chez SmugMug. C’est un site de partage de photos et vidéos, jusque là rien de nouveau. Il existe sur le marché des concurrents comme Flickr, fotolog . Ce qui m’a étonné y a quelques années, c’est de voir que son business model était différent des autres. En général, ces sites offrent des comptes gratuits pour attirer des utilisateurs avec bien sur des comptes « pro » payant pour avoir acces à plus de stockage, bande passante,… Smugmug, non! En effet, tous les comptes sont payants ( Standard: $39.95/year, Power: $59.95/year, Pro: $149.95/year ). Et pourtant, ce site marche très bien et fait même des bénéfices sans avoir besoin de VC.
Sa présentation parlait de la facon dont il utilisait MySQL et des produits SUN acqueris grace au programme Start Up Essentials.
En résumé:
- pas de JOIN
- MySQL 5.1 – InnoDB XtraDB + patches
- Openstorage ( for ZFS snapshot )
Un très bon keynote!
Tags : MySQL Conference
Publié dans User Conference 2009 | Aucun commentaire »
22 avril 2009 by pébé
Paul s’occupe de l’architecture, des SGBD et des admins chez Youtube. Sa participation au keynote « Scaling MySQL – Up or Out? » m’avait bien marqué. Il nous parle aujourd’hui des performances de nos systèmes.
Voila les règles:
- pas d’I/O – tuner vos requètes
- faire le moins d’I/O possible – tuner votre cache
- faite en sorte que les I/O soit séquentiels – donc pas un OLTP système
- faire en sorte que votre I/O controler soit tout le temps occupé
- Ne rien cacher en dessous de la DB ( pas de cache au niveau du filesystem ou du controleur )
- Cacher les écritures avec le contrôleur RAID
- Etre sûr que la taille des STRIP/CHUNCK soient plus LARGES que la taille des DB BLOCKS
- Etre sûr que nos I/O soient réellement concurrents
Une présentation à voir absolument…
Tags : MySQL Conference
Publié dans User Conference 2008 | Aucun commentaire »
22 avril 2009 by pébé
Vous avez tous eu besoin au moins une fois d’un système de messagerie ( de queue ) pour que vos applications communiquent entre elles. Q4M est un de ces systémes qui en plus fonctionne comme un moteur de stockage de MySQL 5.1.
La cible:
- robuste
- rapide ( milliers de messages par seconde )
- facile à utiliser
Les chiffres
- communication asynchrone et persistante
- 7000 messages/s
- 512 bytes
- sync to disk
Les utilisations
- Buffer write pour la DB pour les périodes de pick
- relay en DB et processes d’analyse
- pre fetch – de la DB vers Memcached
- scheduling web crawlers
Les liens
- http://q4m.31tools.com
- Linux – Intel
Les options
- –with-sync
- –enable-mmap
- –with-delete
C’est quelque chose que je vais devoir tester ASAP!
Tags : MySQL Conference
Publié dans User Conference 2009 | Aucun commentaire »
22 avril 2009 by 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.
Tags : MySQL Conference
Publié dans User Conference 2009 | Aucun commentaire »
22 avril 2009 by 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.
Tags : percona
Publié dans User Conference 2009 | Aucun commentaire »