Facebook : 3,5 pétaoctets de données décisionnelles en plus chaque semaine

Facebook : 3,5 pétaoctets de données décisionnelles en plus chaque semaine Pour encaisser la croissance de son entrepôt de données, le réseau social a développé une nouvelle infrastructure de traitement distribué qui se veut plus efficace que MapReduce. Le groupe vient de la mettre à disposition en Open Source.

Le poids de l'entrepôt de données de Facebook, utilisé par les équipes internes pour leurs besoins en reporting, ne cesse de croître. Chaque semaine, ce sont pas moins de 3,5 pétaoctets qui viennent enrichir le datawarehouse. Sa couche applicative reposait jusque-là sur l'algorithme de traitement réparti MapReduce d'Hadoop. "Sur les quatre dernières années, le poids de cette base a été multiplié par 2500. Avec à la clé quelques 60 000 calculs exécutés chaque jour", note Facebook.

Face à cette montée en puissance, le réseau social constate que son gestionnaire de tâches MapReduce commence à présenter des signes de faiblesse dès 2011. Son principal point faible ? "Le fait de gérer à la fois l'allocation des ressources du cluster et l'orchestration de l'exécution des processus", ce qui pouvait entrainer des goulots d'étranglement.

Pour répondre à cette problématique, Facebook a conçu la technologie Corona. Elle consiste à séparer les tâches de gestion de cluster et de celles d'ordonnancement dans deux briques distinctes. Autre évolution apportée : l'introduction d'un dispositif de gestion des processus en mode push, et non plus en mode pull comme cela était le cas auparavant, dans l'optique de réduire les temps de latence de l'ordonnanceur.

Déployé d'abord sur 500 puis 1000 nœuds, Corona a depuis été étendu à l'ensemble du système décisionnel de Facebook. Au final, les résultats observés sont au rendez-vous. Facebook a constaté une baisse des temps de latence de 50% sur certaines taches (de 25 à 50 secondes), le taux d'utilisation et la performance générale du cluster s'en trouvant par ricochet largement améliorés.

Dans l'optique de mutualiser le développement de Corona avec d'autres acteurs, Facebook a décidé d'en publier le code en Open Source. Ses deux briques (ordonnanceur et gestionnaire de cluster) sont disponibles sur GitHub.

Télécharger Corona sur GitHub