Bonjour,

La c�l�bre MySQL, utilis�e depuis les premiers jours (de Twitter), c�de donc sa place � la base de donn�es non-SQL Cassandra.

Cordialement
GeForce

La News
Le r�seau de micro-blogging Twitter, qui a annonc� r�cemment avoir atteint les 50 millions de � tweets � (les messages du r�seau) par jour, cherche � modifier son infrastructure, en changeant de base de donn�es. La c�l�bre MySQL, utilis�e depuis les premiers jours, c�de donc sa place � la base de donn�es non-SQL Cassandra.

Une croissance toujours probl�matique


Lanc� dans le courant de l'ann�e 2006, Twitter a connu une croissance de plus en plus forte, tant en nombre d'utilisateurs qu'en activit�. Une r�cente �tude du cabinet RJMetrics parle ainsi de 75 millions d'utilisateurs fin 2009, qui, m�me s'ils ne sont pas tous actifs, constituent une charge de plus en plus difficile � supporter. Les administrateurs du site sont donc amen�s � chercher de nouvelles solutions pour supporter cette charge.

De m�me que de tr�s gros sites comme Facebook, Google ou Yahoo, les ing�nieurs de Twitter doivent donc r�fl�chir � la fa�on dont le site est con�u, et �ventuellement remettre en question leurs choix initiaux. Ainsi, si le site �tait initialement d�velopp� avec la technologie Ruby on Rails, le site a petit � petit migr� vers une technologie jug�e plus fiable, � savoir le langage Scala, d�velopp� au sein de l'EPFL. Celui-ci est utilis� conjointement avec la technologie Java, et assure selon Twitter de meilleures performances.

Mais l'adoption de Scala ne fait pas tout : les performances d'un site tel que Twitter sont intimement li�es � celles de sa base de donn�es. Jusqu'� pr�sent, MySQL �tait utilis�e, conjointement au syst�me de cache memcached. Le r�le d'un tel syst�me est de soutenir la base de donn�es en gardant en m�moire vive un maximum de donn�es, que l'on peut de plus distribuer sur plusieurs serveurs. Les performances sont ainsi accrues, car la base de donn�es est sollicit�e moins souvent qu'auparavant.

De MySQL � Cassandra


�conomiser les serveurs


Cette approche a fait ses preuves : memcached est utilis� par des sites aussi divers que Facebook, Youtube ou Wikipedia, conjointement avec MySQL. Mais pour Twitter, elle �quivaut � d�ployer de plus en plus de serveurs. Selon Ryan King, un des ing�nieurs responsables de la migration, un tel choix co�te de plus en plus cher en termes de main d'�uvre. Pour l'�quipe, la solution �tait de changer de base de donn�es, c'est � dire d'abandonner MySQL.

Plusieurs solutions ont �t� compar�es, selon une liste de crit�res pr�cis : serait-il n�cessaire, et, si oui, suffisamment facile d'ajouter de nouvelles machines ? Est-ce que le syst�me risquait de d�pendre de composants dont les pannes seraient fatales � tout le site ? Est-ce que le nouveau syst�me supporterait correctement une importante charge en �criture (par exemple li�e � la r�ception de beaucoup de tweets en m�me temps) ? MySQL ne correspondait plus � ces crit�res, mais un certain nombre de bases de donn�es d'un genre encore peu connu ont en revanche �t� consciencieusement examin�es : les bases de donn�es dites non-SQL.

Cassandra, une base de donn�es non-SQL


Les bases de donn�es non-SQL sont assez r�centes, le mouvement NoSQL ayant � peine un an. Cette appellation regroupe en fait un ensemble de bases de donn�es plus ou moins similaires, qui visent � rompre avec les caract�ristiques habituelles des bases de donn�es relationnelles (dont les bases de donn�es SQL font partie), dans le but d'assurer de meilleures performances ou une meilleure capacit� de d�ploiement. Si ces bases de donn�es sont encore jeunes, elles sont pourtant soutenues (voire d�velopp�es) et utilis�es par de gros acteurs du web tels Google, Facebook ou Amazon.

Cassandra, la base de donn�es ayant �t� retenue, a ainsi �t� initialement d�velopp�e par Facebook dans le langage Java, puis publi�e sous licence libre en juillet 2008. Elle est aujourd'hui maintenue par la Fondation Apache, par laquelle elle est d'ailleurs consid�r�e depuis le 17 f�vrier 2010 comme �tant un projet prioritaire. Son but est d'�tre d�centralis�e, de supporter facilement la mont�e en charge en �criture ainsi que l'addition de nouveaux serveurs sans interruption de service.

Une migration d�j� effective


C'est donc exactement ce que recherchait l'�quipe de Twitter, ainsi que le confirme Ryan King. Pour l'instant cependant, la migration de MySQL vers Cassandra n'est pas achev�e : l'�quipe exp�rimente la mise en production de la nouvelle base de donn�es, en testant cette derni�re en parall�le de MySQL. La premi�re table b�n�ficiant de la migration, la plus importante, est la table des statuts, c'est � dire celle des tweets. Mais les ing�nieurs semblent d�j� enthousiasm�s par les premiers r�sultats, puisqu'ils parlent d�j� de faire migrer les autres tables vers cette base de donn�es, ce qui les conduirait ainsi � ne plus utiliser MySQL.

Twitter n'est pas le premier site � faire un tel choix. En effet, le site Digg.com avait d�j� choisi de passer de MySQL � Cassandra, et avait publi� un avis plut�t positif sur cette migration. Avec Facebook, cela repr�sente donc une s�rieuse base d'utilisateurs pour Cassandra, qui se voit ainsi promettre un bel avenir.