les bases de données relationnelles

16 juillet 2009 par 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.

Désactiver les clés étrangères

15 juillet 2009 par 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.

Fin de la MySQL Conférence 2009… la dernière?

24 avril 2009 par 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.

CouchDB: Behind the Buzz – Jan Lehnardt

23 avril 2009 par 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.

Keynote – The SmugMug Tale Don MacAskill (SmugMug) Keynote: The SmugMug Tale Don MacAskill – (SmugMug)

23 avril 2009 par 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!

Your Disk Array is Slower Than it Should Be – Paul Tuckfield, YouTube

22 avril 2009 par 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…

Using Q4M: A Message Queue Storage Engine for MySQL – Kazuho Oku (Cybozu Labs, Inc.)

22 avril 2009 par 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!

Maria In Depth – Monty Widenius

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.

Keynote Address: Breaking Boundaries

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.

Build Your Own MySQL Time Machine

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.