Big Data : Facebook ouvre les sources de Presto

Big Data : Facebook ouvre les sources de Presto Le réseau social publie en open source son moteur SQL conçu pour la gestion de données en masse sur Hadoop. Il permettrait d'exécuter des entrepôts de centaines de pétabytes.

Après son initiative d'open hardware, Facebook lance un nouveau projet open source qui pourrait bien faire beaucoup de bruit. Le groupe publie son moteur SQL Presto sous licence Apache v2. Le réseau social l'utilise notamment sur un entrepôt Hadoop atteignant 300 pétabytes pour ses besoins de Web Analytics. "Environ un millier de salariés y ont recours en lançant 30 000 requêtes quotidiennement", précise Facebook. Pour encaisser la charge, la base est désormais installée sur un cluster de 1000 nœuds.

Initialement, Facebook avait déployé MapReduce et Hive pour gérer les requêtes lancées sur son cluster. Mais ce dernier prenant de plus en plus de volume, la société a décidé de développer en Java son propre moteur de requêtes SQL distribuées. Cette brique est dessinée pour réaliser aussi bien des analyses interactives que du machine learning ou du batch. L'avantage de Presto est d'offrir la plupart des possibilités d'un moteur SQL standard. Au programme : la capacité à gérer des requêtes complexes, des agrégations, des jointures externes droits/gauches, des sous-requêtes...

Mais qu'en est-il de cette nouvelles brique en termes de performance ? A la différence de Hive qui avec MapReduce implique l'écriture des résultats sur disque, Presto compile les parties de la requête à la volée, et exécute l'intégralité du processus en mémoire. Et au final, Facebook revendique une performance dix fois meilleure que le couple Hive / MapReduce, notamment en termes d'efficacité CPU et de latence.

En initiant ce projet open source, Facebook entend partager la maintenance et les développements de Presto avec d'autres. Le groupe lance d'ailleurs explicitement pour l'occasion un appel à contributions. D'après le site du projet, la technologie est d'ailleurs déjà testée par d'autres acteurs web bien connus, comme Airbnb et Dropbox. 

Presto fait écho à la récente initiative de la fondation Apache avec Storm. Un projet qui vise à proposer une alternative à Hadoop, et son mode batch, en avançant une architecture distribuée qui se veut mieux adaptée au traitement temps réel.

 Site du projet Presto