Drizzle ou petite pluie…

Sunday 17 August 2008

Les grandes vacances ne sont pas synonyme de dĂ©tente pour tout le monde. Je suis en effet pas mal pris et je voyage beaucoup en ce moment. J’Ă©cris ce post de Taipei ou je profite de cette fin de week pour me pauser. Je me demande quelle est l’opinion de la blogosphère française au sujet de Drizzle.

Pour les anglophobes, Drizzle est une version "light" de MySQL basĂ©e sur un "fork" de la version 6.0 lancĂ© par Brian Aker. Un fork pour faire simple, on prend une copie des sources Ă  un instant t et on commence Ă  developper dans son coin. Jusqu’Ă  prĂ©sent, je connaissais celle de mes amis de Proven Scaling et celle de Monty lui mĂŞme (j’en profite pour saluer Guilhem qui fait parti de ce projet).

Maintenant pourquoi le nom Drizzle? un petit tour sur wikipedia, Drizzle est une petite pluie… humm.. et cet RDBMS Ă  pour cible les applications web et le cloud (nuages) computing… ok! gotcha! :)

Toujours sur wiki , on prend MySQL, on enlève tout qui n’est pas nĂ©cĂ©ssaire pour une application web ( procĂ©dures stockĂ©es, view, triggers,…) et on rajoute, corrige les problèmes actuels de MySQL (core,..)…

Maintenant que nous avons fait un peu le tour de sujet, nous sommes en droit de nous poser quelques questions. De mon point de vue, beaucoup de membres de la communautĂ© n’ont pas toujours pas digĂ©rĂ© la sĂ©paration de MySQL en communautĂ© et enterprise. Ils ont senti leur "bĂ©bĂ©" leur Ă©chaper. De mĂŞme, beaucoup se sont senti frustĂ© lorsque le temps d’intĂ©gration d’un fix s’est mis Ă  grandir de façon exponentielle…

J’ai bien aimĂ© le post de Brian aussi, "Drizzle n’est pas un remplacant potentiel de MySQL"… oui… oui et non. Si j’ai une application web, dois je utiliser Drizzle ou MySQL? Sachant quand mĂŞme que le succes de MySQL est quand mĂŞme basĂ© sur le succes du web.

Finalement je finirai par le post de Mark, "share the love", "partager l’amour", humm pas très français tout çà. Pour ma part, je suis content qu’une initiative telle que Drizzle voit le jour, et j’attends avec impatience de pouvoir la tester et l’Ă©valuer mais j’attends avec encore plus d’impatience que la 5.1 soit G.A, que Maria sorte une version plug-in, que le plug-in InnoDB devienne stable,…

Et vous, qu’en pensez-vous?

Quelques propositions de lecture : revue de blogs MySQL

Tuesday 29 July 2008

En vacances pour quelques jours encore (mais le wifi est le cordon ombilical du geek), je vous propose cette fois-ci non pas un article mais une sĂ©lection de liens susceptibles de vous intĂ©resser. ConsidĂ©rez ces propositions de lecture comme autant d’occasions d’enrichir vos bookmarks ou lecteurs de flux RSS prĂ©fĂ©rĂ©s.

Commençons par les sources d’information en français, c’est vite fait :

Tout d’abord passage obligĂ© par Planet MySQL, dont la dĂ©clinaison française est dĂ»e Ă  “PĂ©bĂ©“, il y’a pour l’instant beaucoup moins de blogs MySQL que sur la version originale mais n’hĂ©sitez pas Ă  vous faire connaĂ®tre si vous-mĂŞme bloggez sur MySQL en français.

Transition toute trouvĂ©e vers le site de Nexen.net, dont le flux d’actualitĂ© MySQL est lui aussi prĂ©sent sur Planet MySQL. Je vous encourage tout particulièrement Ă  vous abonner Ă  la newsletter hebdomadaire de Damien Seguy, vous y trouverez une sĂ©lection d’articles PHP/MySQL de qualitĂ©.

Le contenu français s’arrĂŞte lĂ , cependant ne passez pas Ă  cĂ´tĂ© de la nouvelle Ă©dition (Ă©tĂ© 2008) du MySQL Magazine, au menu diffĂ©rents tutoriels dont un concernant mk-table-checksum, un des outils du cĂ©lèbre maatkit permettant de s’assurer que le contenu de vos tables sur le slave sont bien identiques Ă  celles du master. Egalement au programme de cette Ă©dition, le rĂ©sultat d’un grand sondage MySQL.

Vous l’aviez sans doute remarquĂ© mais au cas oĂą : le module de recherche du site mysql.com a Ă©tĂ© grandement amĂ©liorĂ©. Reposant dĂ©sormais sur une technologie Google, les rĂ©sultats sont plus pertinents.

Un billet de mysqlperformanceblog nous rappelle qu’en installant un GNU/Linux 32 bits sur une architecture 64 bits, MySQL ne pourra utiliser plus de 2.5 GB de mĂ©moire… C’est pourtant une configuration rĂ©pandue chez les hĂ©bergeurs.

Ne ratez pas les slides “Join-Fu” de Jay Pipes : de très bon slides sur l’optimisation des requĂŞtes, le partionnement, il y’a deux sĂ©ries de slides, lisez au moins la première.

Enfin, un article très intĂ©ressant (trouvĂ© via xaprb.com) sur le partionnement des donnĂ©es avec Ă  la clĂ© la prĂ©sentation d’une stratĂ©gie nommĂ©e BASE (basically available, soft state, eventually consistent) Ă  comparer avec le plus classique ACID (Atomicity, Consistency, Isolation, Durability), l’idĂ©e Ă©tant ici de “sacrifier” la cohĂ©rence assurĂ©e par le SGBD au profit d’une meilleure montĂ©e en charge, tout en retombant sur ses pieds bien sĂ»r…

Bonnes lectures !

Vous avez une question? Nous y répondons!

Saturday 5 July 2008

Un peu dans l’idĂ©e de asktom.oracle.com, le très cĂ©lèbre site de Tom Kyte, grand gourou Oracle, nous lançons une sorte de Yahoo! Question - RĂ©ponse sauce DBNewz. Suite Ă  l’idĂ©e d’Arnaud et sa sĂ©rie dont vous ĂŞtes le hĂ©ros, nous vous invitons Ă  poser une question par Ă©mail Ă  question@( vous connaissez le domaine )  et nous y rĂ©pondrons.

Quelle est la diffĂ©rence avec un forum? Nous retenons les meilleures questions et nous Ă©crivons un article avec la dite question et sa rĂ©ponse. Si vous ne voyez pas votre question, c’est que nous n’avons pas encore eu le temp d’y rĂ©pondre…

A très bientôt!

PS: Cette adresse peut aussi ĂŞtre utilisĂ©e si vous constatez un problème sur le site…

Les certifications MySQL 5 : retour d’expĂ©rience

Friday 13 June 2008

Une certification MySQL, et pourquoi pas ? Peut-ĂŞtre y pensez-vous…

Présentation

Si vous vous demandez à quoi elles peuvent bien servir, MySQL a dressé une liste pour vous :

Une certification est censĂ©e…
- Valider votre savoir-faire
- Diminuer les risques liés à la manipulation de MySQL
- Permettre d’offrir Ă  son entreprise une plus grande qualitĂ© de service
- Augmenter la productivité
- Réduire les coûts de maintenance
- Offrir à son détenteur une augmentation de salaire ;)

Au-delĂ  de cette version lĂ©gèrement idĂ©aliste/marketing et en Ă©vitant par ailleurs l’aspect souvent “polĂ©mique” concernant les certifications (les “pour”, les “contre”), ne cĂ©dons pas Ă  la tentation du troll et voyons ce que MySQL nous propose.

(more…)

MySQL Cluster fait bande Ă  part

Wednesday 28 May 2008

Kaj Arno annonce qu’Ă  partir de la version 5.1.25 de MySQL Server, les binaires de MySQL Cluster ne feront plus parti du package. Pas de panique, c’est en fait une nouvelle branche qui est crĂ©ee, le MySQL Cluster fera donc l’objet d’un package sĂ©parĂ© (les versions sont pour l’instant identiques mais l’espace dĂ©diĂ© est dĂ©jĂ  crĂ©e).

A l’origine de cette division, des rythmes de dĂ©veloppement diffĂ©rents entre MySQL Server et MySQL Cluster, mais aussi des retours de la part des utilisateurs du cluster indiquant que ces derniers sont davantage concernĂ©s par les derniers dĂ©veloppements du MySQL Cluster plutĂ´t que par ceux du MySQL Server. Cette sĂ©paration devrait donc permettre aux nouvelles versions de MySQL Cluster d’ĂŞtre publiĂ©es plus rapidement.

Jeremy Cole apporte son grain de sel Ă  cette annonce et souligne que cette sĂ©paration dans les packages peut Ă©galement ĂŞtre percue comme un “aveu” que le système actuel permettant Ă  MySQL d’accueillir des moteurs “plugable” ne tient peut-ĂŞtre pas toutes ses promesses… Ce que reconnaĂ®t Ă  demi-mot Stewart Smith (MySQL software engineer sur le cluster) dans les commentaires : l’opĂ©ration n’est apparemment pas simple, les moteurs de stockage (NDB compris) effectuant selon lui plus de tâches qu’ils ne devraient.

High Performance MySQL 2nd edition, pour bientĂ´t… ou pas.

Thursday 22 May 2008

Deux mauvaises nouvelles de la part de O’reilly ce mois-ci :

- J’attendais mon Ă©dition de High Performance MySQL 2nd edition pour la semaine prochaine, le 1er juin d’après le mail rĂ©capitulatif de prĂ©commande reçu fin avril, mais c’est la date du 1er juillet qui apparaĂ®t dĂ©sormais sur la fiche d’Amazon France… Le .com indique en revanche la date du 19 juin, un peu flou tout ça.
Ceux qui comme moi sont impatients de dĂ©couvrir cette seconde Ă©dition (l’ancienne datait de 2004 et Ă©tait dĂ©jĂ  excellente) devront donc patienter encore un peu.
D’ici lĂ  libre Ă  vous de la prĂ©commander ou d’attendre mon verdict… qui ne pèsera sans doute pas grand chose face Ă  la qualitĂ© des auteurs prĂ©sents : les experts du fameux “mysqlperformance blog” (Baron Schwartz, Peter Zaitsev, Vadim Tkachenko), mais aussi Jeremy Zawodny (de la prĂ©cĂ©dente Ă©dition), Arjen Lentz… Du beau linge !

- La vĂ©ritable mauvaise nouvelle est ailleurs, il s’agit bien sĂ»r de la fermeture de la filiale française d’O'Reilly survenue au dĂ©but du mois, un Ă©vènement pas si hors-sujet sur un blog comme celui-ci : qui n’a jamais eu entre les mains un de leurs ouvrages ?
En dĂ©pit de la qualitĂ© reconnue de ces derniers, la maison mère a fini par couper les subventions : les faits sont relatĂ©s sur immateriel.fr (billet du 9 mai), un blog tenu par l’ancienne Ă©quipe semble-t-il. Souhaitons leur tout le succès qu’ils mĂ©ritent dans leurs prochaines aventures.

Nouvel auteur pour DBNewz: Arnaud Gadal

Sunday 4 May 2008

La vie est faite de hasard et de rencontres. Cette fois-ci, j’ai eu le plaisir de rencontrer Arnaud Ă  la dernière confĂ©rence MySQL UC. Devant son talent et sa motivation, j’ai rapidement eu l’envie de le voir participer encore plus Ă  la vie de la communautĂ© française. C’est avec joie que je vous informe de sa volontĂ© de me rejoindre sur ce blog. Bienvenue Arnaud!

Arnaud: “De l’Ă©lĂ©phant Php au dauphin MySQL, je navigue entre deux mondes Ă©troitement liĂ©s : le dĂ©veloppement web et les bases de donnĂ©es. Actuellement “ingĂ©nieur bases de donnĂ©es” chez un opĂ©rateur internet / tĂ©lĂ©com, je manipule particulièrement MySQL (tuning, rĂ©plication, cluster…) avec un soupçon de PostgreSQL. Je participe notamment Ă  l’Ă©laboration de solutions Ă  forte audience capables de monter en charge et d’assurer une haute qualitĂ© de service.”

Je vous laisse le plaisir d’en dĂ©couvrir plus dans les semaines Ă  venir sur DBNewz.

Some thoughts on Agile Data Development

Tuesday 11 December 2007

Many things in the current IT world are based around hard facts, solid experience and studied techniques. Unfortunately this tends not to be the case when it comes to application developers making database decisions. This is not a criticism of application developers per se, their expertise lies in the app technology, but more a problem with development process and a misunderstanding of the role of the database as the underpinnings of data oriented (as opposed to object oriented) application architecture.The general process of modern agile application development proceeds along fairly set lines of iterative feature based and hopefully test driven development. This approach of getting something working with a suite of tests around it which enable rapid refactoring and rapid development run counter to most Big Design Up Front (BDUF) methodologies, most notably the much maligned waterfall model and the general approach taken to most database driven methods. To truly be an agile database developer in this brave new development world implies a level of clairvoyance beyond most of us, and requires an understanding of future application direction and projected data growth which is beyond that which can be expected of application developers and their product managers. To ignore this difference in requirements of the agile developer and the data modeller/DBA will invariably lead to scalability and performance issues as the project moves forward through its multiple iterations.

We are not saying here that the focus and philosophy of the agile development team and that of the database designer/administrator are incompatible, more that there is a difference in the needs and aims of the two groups and that this difference needs to be recognised as such. This is not always the case in the necessary drive to shift development paradigms. The larger the project, the more apparent this becomes. Changing code is not the same as changing data. A database at the core of a complex multi tier application will usually be supporting many different access paths, from the OLTP requirements of a running user driven application to the reporting requirements of management and maintenance as well as a suite of custom administration interfaces, data feeds in and out as well as the requirements for failover and disaster recovery, and refactoring, recoding and changing requirements is not as simple as that of single parts of the overall codebase.

While there are database methodologies to support agile development, generally the current processes have database design/deployment/administration as worrying separate, and the realms of all the pieces of getting a product from the back of a restaurant napkin to global server deployment need to incorporate the whole iterative development process. We should not be in the position of giving the DBAs the code to deploy when the iterative cycle ends. This is simply unacceptable from an architecture and process point of view. What we have here is a series of failures in using the best people for the job.

As mentioned above, application developers are not generally the best people to be structuring and modelling the data. Data structures, no matter how well abstracted, are fundamentally tied to the underlying technology. Sensible design and architectural decisions can only happen if the data specialists are incorporated into the agile development teams themselves. We can, and need, separate database administration teams, but also, these teams must be part of, or have significant input into the development process, else all roads lead to project misery, to poor use of software/hardware and the continuation of the ignorance loop, as mistakes in data structure and design are rarely fed back up to the original designers. Adding features to code and refactoring as we go works for code, it rarely works in practice for data. It is not so much the new features that is the problem, it the short-termism which the process unconsciously encourages which lies at the heart of the problem. Large data volumes require a degree of foward planning that is often lacking from our short Sprint focused design decisions.

Ignoring data modelling disasters, most projects start off with a fairly well understood and structurally sensible data structure (bear with me here) for the first few iterations of the system. These first set of requirements generally have the data model supporting them happily. The issues only usually really arise as the codebase and feature list grows, along with the growing datasets. Data structures that support smaller volumes of data do not necessarily scale linearly and a lack of understanding of the changing nature of the system will cause problems for the future of the application due to information not flowing back from the DBAs about the current state of the system, as well as the new demands being placed on it from the continuous feature development of the agile processes. Changing requirements are all part of the agile world, and are part of the power of this type of development, and additional features pose less of a problem than feature modifications, but the focus of short iterative steps can easily lead to a loss of focus on the greater need of the ability of the database and the datamodel itself to support the changing application.

In conclusion, for our agile data development processes to succeed, we need to use the skills where they are best suited. Database abstraction layers need to be tested by the database specialists, not in isolation, but within the application context itself, and any fundamental design decisions should be made by the people who understand the systems involved, at all levels.

Kaj repond Ă  Mike et Jeremy…

Thursday 9 August 2007

Kaj rĂ©agit aux discussions d’hier. Mais qu’est ce que cela va changer pour le user landa? Va-t-il se tourner vers la version enterprise? Sachant que j’ai encore des serveurs qui tournent MySQL du 3.23, du 4.0 et du 4.1, cette restructuration aura-t-elle un impact pour moi? Non je ne crois. Pour des grosses sociĂ©tĂ©s, tous les bugs sont trouvĂ©s en phase de test… si la version courante est buggĂ©, je prendrais la prĂ©cĂ©dente.

des nouveautés sur MySQL Enterprise vs Community

Thursday 9 August 2007

Les annonces faites par Kaj ont secoué un peu la communauté avec des réactions assez forte de ses membres actifs. Je vous laisserez les lire en détails sur son blog.
Mais voila l’idĂ©e gĂ©nĂ©rale:

  • Les patchs et les nouvelles fonctionnalitĂ©s ne seront plus appliquĂ© Ă  la GA mais attendront la version suivante.
  • 2 GA par an pour ce qui est des binaires
  • pour les nouvelles versions 1 GA par mois jusqu’Ă  maturation
  • 4 GA par an pour ce qui est des sources
  • Les sources des versions “entreprise” ne seront disponibles que pour les clients payant

Suite à cela pas mal de réactions, en autres de la part de Mike et Jeremy à ce sujet.

Maintenant quoi penser de la chose? Techniquement, MySQL est open source et pas free source. MySQL a Ă©tĂ© portĂ© par sa communautĂ© et c’est ce qui a fait que cette BdD soit devenu si populaire. On ne peut pas s’empĂŞcher de penser Ă  la mĂŞme sĂ©paration qu’il y a eu lieu entre RHEL et Fedora. A la diffĂ©rence que les patchs et fixs sont d abord appliquĂ©s sur FC et que les versions stabilisĂ©es sortent ensuite sur RHEL.