jeudi 18 février 2010

MySQL Cluster 7.1

La version 7.1 du moteur de stockage NDB n'est pas encore sortie mais on peut déjà savoir quelles seront les prochaines nouveautés non garanties pour le moment :

- Deux nouveaux connecteurs JAVA

ClusterJ et ClusterJPA permettent d'accéder au cluster MySQL sans utiliser de serveur MySQL (ni JDBC) ou pour le second de passer ou non par un serveur MySQL si la requête exécutée peut être améliorée par l'optimiseur MySQL.

Cette base permet d'accéder à des informations tel que la mémoire utilisée (table memoryusage), le statut des noeuds (table nodes), etc... nécessitant auparavant l'utilisation des commandes ALL DUMP {CODE}

- Une nouvelle base de données nommé ndbinfo

Cette base permet d'accéder à des informations tel que la mémoire utilisée (table memoryusage), le statut des noeuds (table nodes), etc... nécessitant auparavant l'utilisation des commandes ALL DUMP {CODE}

- Le support natif des valeurs par défaut des colonnes

Les valeurs par défaut des colonnes sont à présent stockées dans le noyau NDB et non par le serveur MySQL. Ceci permet au serveur MySQL de ne plus avoir à transférer ces données aux noeuds et donc potentiellement d'accélérer les requêtes d'insertions

- Une nouvelle option (--nowait-nodes) pour les managers

Cette option permet de ne plus avoir besoin de démarrer plus d'un manager pour démarrer un cluster configuré avec plusieurs managers.

Pour suivre l'évolution de ces fonctionnalités n'hésitez pas à consulter la page dédiée.

Récupérez les dernières versions de MySQL Cluster 7.X

Nous avons déjà vu dans un billet précédent les nouveautés de la version 7.0 (ancienne 6.4 renommée).

Il est cependant important de pouvoir vérifier l'arrivée des nouvelles versions sur le dépot officiel, et pourquoi pas de les récupérer pour les tester. Pour cela voici les commandes que j'utilise :

- Pour vérifier l'arrivée de nouvelles versions, je m'appuie sur les dates de création des répertoires

export LANG=C
wget -O - -q ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/|grep Directory|awk -FDirectory '!/old/ {print $1}'|perl -MDate::Manip -lne 'if(Date_Cmp(ParseDate($_),ParseDate("2010 Feb 15 21:27"))>0){print "Nouvelle version disponible !";exit}'

- Pour récupérer les nouvelles versions disponibles j'utilise l'alias mirror_mysql_cge que j'ai défini ainsi :

alias mirror_mysql_cge='(cd /var/www && wget -nH --cut-dirs 3 -rc -R "mysqlcom*" -A "*-7.*.gz" --exclude-directories=/pub/mysql/download/cluster_telco/old,/pub/mysql/download/cluster_telco/newbuilds,/pub/mysql/download/cluster_telco/*-6.*,/pub/mysql/download/cluster_telco/*/*-6.*,/pub/mysql/download/cluster_telco/evaluation* ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/)'

A chaque récupération de nouvelles archives il est cependant obligatoire de modifier la date utilisée dans la commande wget pour repérer la dernière archive récupérée. Pour obtenir cette date, la commande suivante sera d'un grand secours :

export LANG=C
wget -O - -q ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/|grep Directory|awk -FDirectory '!/old/ {if(index($1,":")){print $1}}'| tr '\n' , |sed 's/,$//'|perl -MDate::Manip -MMemoize -lne 'sub sortDate {(Date_Cmp(ParseDate($a),ParseDate($b)))} print [reverse sort sortDate split(",",$_)]->[0]'

Ainsi je retrouverai toutes les versions 7.X sous l'arborescence /var/www/cluster_telco