Après plusieurs années de développements, entrecoupées de périodes de vache maigre, Oracle s’attelle enfin à fournir des fonctions de haute disponibilité et de montée en charge à sa base de données MySQL avec l’utilitaire Fabric. Construit autour d’un framework open source, cet outil est destiné à gérer une ferme de serveurs MySQL, avec la promesse de permettre des connexions plus rapides au moyen de transactions et de requêtes dirigées correctement.

Fabric peut être considéré comme un environnement servant à répartir la charge des requêtes entre les différentes bases « esclaves » et à partitionner automatiquement les données. Intégré au package MySQL Utilities 1.4.3, il vise à détecter automatiquement les pannes et à assurer la reprise après incident. En construisant un serveur primaire (maître), pour lectures et écritures, puis un serveur secondaire (esclave), prenant en charge uniquement les lectures, le basculement de l’un à l’autre peut s’opérer facilement en cas de panne. Fabric peut également, grâce au partitionnement et repartitionnement automatique des données, mieux gérer ces dernières et éviter ainsi qu’une des tables atteigne sa capacité maximale d’informations stockées.

Des fonctions déjà éprouvées

« Les plus grands sites web du monde et les applications basées sur le cloud reposent sur la réplication et le partitionnement de MySQL », explique Tomas Ulin, vice-président du département d’ingénierie chez Oracle. Auparavant, les administrateurs ayant besoin de telles fonctionnalités devaient écrire le code manuellement ou utiliser un logiciel-tiers pour créer un cluster de serveurs MySQL interconnectés. Il existait également une alternative dénommée MySQL Cluster, fournissant les mêmes fonctions que le nouvel utilitaire d’Oracle. Mais cette base de données distribuée « prête à l’emploi » utilisait un moteur de stockage différent de celui de la version originelle de MySQL. Ce moteur, répondant au nom de NDB, était plus restrictif que les traditionnels MyISAM et InnoDB, ne permettant pas, par exemple, la fonction de recherche plein texte.

 

Un identifiant unique aux serveurs

Fabric présente d’autres avantages mais aussi quelques désagrements. Comme l’explique Fernando Ipar, consultant chez Percona, « Fabric repose sur les toutes dernières versions de MySQL. L’implémentation devrait donc être plus simple », soutient-il. La version la plus récente de MySQL (5.6.5) est en effet la seule à intérer GTID (Global Transaction Identifier), un identifiant unique associé à chaque transaction sur le serveur-maître. L’avantage est que cet identifiant est commun à tous les serveurs dans une configuration de réplication et qu’il permet de gagner du temps. Mais comme l’indique Fernando Ipar, « l’inconvénient évident de cette compatibilité avec la dernière version est que beaucoup de gens utilisent encore des versions antérieures de MySQL ». Ils devront donc basculer vers la dernière mouture et en apprendre les évolutions pour pouvoir la maitriser. Autre point noir, la documentation liée à Fabric est encore trop peu fournie. Fernando Ipar conseille ainsi de se tourner vers les commentaires sur le code source, bien plus utiles et denses pour s’imprégner du fonctionnement de Fabric.