Des
performances multipliées par 10 à 50, c’est la promesse de cette start-up. Tokutek propose TokuDB, un moteur de stockage plutôt innovant pour MySQL puisqu’il s’appuie sur les fractales pour générer ses index. Avec des gains de performance incroyables à la clef. Coup de pub ? Le petit éditeur a publié un bench opposant TokuDB à InnoDB : x19 pour l’insertion d’un milliard de ligne dans une table disposant de 3 index, x32 en combinant insertions et suppressions, enfin de meilleures performances que MyISAM en query notamment au delà de 130 millions d’enregistrements… tout cela grâce aux fractales qui remplacent la technologie B-tree pour les index. Une révolution à venir pour nos SGBD ?
On avait fini par s’habituer à la domination du SGBD relationnel. Pourtant ces dernières années voient le retour des ruptures technologiques. Le stockage en colonnes se pose en alternative performante pour l’analytique (et va peut-être même aller au-delà si on en croit les déclarations d’Hasso Plattner lors de Sapphire 2009). Aujourd’hui c’est la technologie des index qui est remise en cause par une start-up qui propose avec les fractales une alternative ultra-performante aux arbres B-tree traditionnellement utilisés dans nos SGBD.
Si Tokutek n’est pas avare en white papers de tous ordres, il ne donne que peu de détails sur sa technologie elle-même. On sait que TobuDB va trier les données avec l’insertion en index et donc doit tendre à rendre la lecture des index plus séquentielle et moins aléatoire. D’où des performances nettement accrues et les temps d’insertions deviennent plus linéaires et prévisibles. Tokutek assure que sa technologie présente de meilleures performances lors de l’effacement des enregistrement ce qui permet de limiter le partitionnement. Enfin, ses algorithmes sont de type COA (Cache-Oblivious Algorithmics). La taille mémoire ne doit pas influencer sur la performance : l’algorithme fonctionne de la même façon quelle que soit la taille des blocks de données choisis.
Les facteurs d’accélération (x10 à x50) font immédiatement penser à une arnaque. Pourtant Tokutek à publié ses bench et propose à tous de les exécuter sur la technologie de stockage de son choix. Evidemment certains DBA contestent les chiffres de Tokutek. Par exemple sur « The Fake Amelia », l’auteur est parvenu à insérer dans sa base MyISAM le milliard d’enregistrement du test en 31,5h au lieu des 20 jours annoncés par Tokutek. Selon notre bloggueuse l’éditeur annonce 404 enregistrements à la seconde en InnoDB et 93 avec MyISAM (ce ne sont pas les chiffres actuellement en ligne sur le site de Tokutek mais peut-être y-a-il eue correction depuis). Amelia a visiblement pu atteindre 8800 enregistrements/s, ce qui est une belle performance mais encore inférieure à TokuDB qui annonce 14315 enregistrement/s. Ces chiffres n’engagent que leurs auteurs respectifs, ils sont donc a prendre avec prudence. Néanmoins notre testeuse a modifié le test en créant 400 partitions de 50000 enregistrements. Bref, elle a démontré sa connaissance de MySQL et de la façon dont on peut optimiser MyISAM en fonction du volume de données que l’on attend. Ce qui, de mon avis personnel, n’enlève en rien l’intérêt que l’on peut porter à TokuDB. L’éditeur annonce d’ailleurs pouvoir optimiser sa technologie pour exploiter les processeurs multi-cœurs. Plutôt encourageant. Les grands éditeurs de SGBD vont-il suivre et copier TokuDB (ou racheter Tokutek) ?
Le site de Tokutek : ici
Le site d’Amelia Fake : là










