NoSQL : le Cern utilise MongoDB pour unifier ses accès aux données
Afin d’optimiser les accès aux données répartis dans des centres de recherche, les équipes du Cern ont équipé leurs scientifiques, travaillant sur le projet de détecteur de particule Compact Muon Solenoid, d’un système de base de données MongoDB. L’approche orientée document de cette base NOSQL a facilité l’agrégation des sources de données dans un environnement très complexe.
Les physiciens travaillant sur le détecteur CMS (Compact Muon Solenoid) du Grand accélérateur de hadron du Cern (the Large Hadron Collider - LHC) en Suisse ont à disposition un système de gestion de bases de données NoSQL qui unifie les accès aux données issues d’une large variété de sources.
Valentin Kuznetsov, un chercheur et spécialiste en informatique de l’Université de Cornell est un membre de l’équipe qui a doté le projet CMS du Cern d’outils de gestion des données. Ce système repose sur MongoDB, qui a été préféré aux technologies de bases de données relationnelles traditionnelles et aux autres options non relationnelles.
« Nous avons considéré d’autres options, comme des caches de fichiers ou de type in-memory, tout comme des bases de données de type clé / valeur, mais au final, nous avons estimé qu’une base de donnée orientée document correspondait mieux à nos besoins , affirme-t-il. Après avoir évalué plusieurs applications, nous avons choisi MongoDB pour son support des requêtes dynamiques, ses index complets tout comme les données embarqués et de l’auto-partitionnement (auto-sharding) ».
Le CMS est l’un des deux détecteurs de particules du Cern. Il rassemble les données des expérimentations réalisées à partir du LHC - lui, reproduit le Big Bang (l’origine de l’univers) - qui doit permettre de comprendre comment et par quelle force les particules obtiennent leur masse. Plus de 3000 physiciens, issus de 183 instances de 38 pays, sont impliqués dans la conception, la construction et la maintenance des expériences du CMS.
Une gestion des données à grande échelle
Cornell est l’une des nombreuses institutions mondiales qui participent aux expérimentations menées au Cern. Kuznetsov, physicien et ingénieur informaticien qui a travaillé au centre de recherche dans le passé, est impliqué notamment dans le groupe qui a la charge de la gestion des données dans le centre.
Selon lui, il y a cinq ans, l’équipe en charge de gérer les données du CMS s’est retrouvée confrontée à un problème de découverte de données (data discovery), dû notamment à un nombre élevé de bases de données; ce qui nécessitait alors une interface utilisateur capable de dissimuler la complexité de l’architecture aux physiciens. Son souhait était de développer une interface sur le modèle de Google qui pourrait alors retourner des réponses précises aux requêtes dont la forme ne serait pas pré-définie.
« Nous disposions d’une grande variété de bases de données et de formats multiples - HTML, XML, JSON, etc... S’ajoutait à cela la dimension sécurité. La complexité était, et est toujours, très importante », commente-t-il.
L’équipe a alors découvert le monde des bases de données NOSQL et, plus précisément, l’approche « orienté document », qui semblait correspondre aux besoins. MongoDB faisait office de favori sur ce terrain car la technologie se prêtait bien au produit final, à savoir une interface à partir de laquelle effectuer des requêtes en mode texte.
MongoDB est l’un des sous-ensemble des bases de données NOSQL orientées documents, comme CouchDB de la Fondation Apache.
Barry Devlin, un expert dans le domaine du datawarehouse et bloggueur pour le site B-Eye Network (une publication TechTarget) explique : « Vous avez dit documents ? Si ce concept est confus, sachez que vous n’êtes pas le seul. Dans ce cas précis, nous ne parlons pas de documents textuels utilisés par des humains. Nous utilisons plutôt le terme au sens informatique et programmation, comme un ensemble de données collectées, stockées ensemble à des fins pratiques, pour en faciliter le traitement, généralement sans schéma pré-défini. »
Dix pétabytes par an
Le CMS s’étend sur plus de 100 datacenters, bâtis sur un modèle trois-tiers et génère plus de 10 pétabytes de données chaque année, qu’elles soient réelles, simulées ou sous forme de métadata. Ces informations sont stockées et récupérées depuis des sources de données relationnelles et non relationnelles, comme des bases de données classiques, d’autres orientées documents, des blogs, des wikis, des systèmes de fichiers et des applications spécifiques.
Pour pouvoir rechercher et agréger ces informations dans un environnement hautement complexe, le projet Data Management and Workflow Management (DMWM) du CMS a créé un système d’agrégation de données (DAS - Data agrégation system), bâti sur MongoDB.
Ce DAS fournit une couche au-dessus des sources de données et permet aux scientifiques d’interroger librement ces données via des requêtes en mode texte, puis d’agréger les résultats issus de cet environnement distribué et multi-fournisseurs, tout en préservant l’intégrité des données, les politiques de sécurité et le format des données. Le DAS présente ensuite la donnée dans un format défini.
Toutes les requêtes DAS peuvent être formées en mode texte, soit sous forme de mots-clés ou de paires clé/valeur (une paire représentant une condition). Les utilisateurs peuvent ainsi interroger le système via un langage simple de type SQL qui est ensuite transformé en une syntaxe de requête MongoDB - un fichier JSON (JavaScript Object Notation), affirme Kuznetsov.
« MongoDB ne nécessitant pas de schéma de données pré-défini, nous avons la possibilité de stocker des données DAS suivant n’importe quelle structure, sans tenir compte du fait qu’il s’agisse de dictionnaires, de listes, de paires clé/valeur, etc... Ainsi, chaque clé DAS dispose d’attributs qui décrivent sa structure JSON », poursuit-il. Pour lui, il est clair « qu’il n’y avait rien de spécifique qui répondait à nos exigences ».
A Cornell, d’autres équipes, comme celles du département ornithologie, rencontrent elles aussi le même problème et ont montré de l’intérêt pour MongoDB. Pour Kuznetsov, dans ce cas, l’analytique devrait être l’ingrédient principal. Le système devrait s’enrichir avec les requêtes déjà passées et être capable de répondre à davantage de questions, plus librement ».
« La beauté de MongoDB, souligne-t-il, est que le langage de requête est dans le système », à l’inverse de CouchDB, par exemple, également utilisé au Cern, qui nécessite de coder chaque requête.
« DAS est utilisé 24 heures par jour, 7 jours sur 7, par les physiciens du CMS, des opérateurs et des gestionnaires de données des centres de recherche du monde entier. En moyenne, chaque requête interroge des centaines de documents, chacun de plusieurs Ko. Nous obtenons des résultats de l’ordre de 6000 documents par seconde, pour des données mises en cache », conclut-il enfin.
Traduit de l'anglais par la rédaction