Meetup PerfUG [27/03/2019] : Génération de code, moteur Catalyst… Démystifions Apache Spark !
Apache Spark est un framework de calcul distribué écrit en Scala qui s’est largement démocratisé ces dernières années. Au cours des dernières versions, Apache Spark s’est doté d’un moteur SQL avec génération de code à la volée, qui lui permet de profiter des diverses optimisations existantes dans le domaine.
Afin de comprendre en détail le fonctionnement de ce moteur SQL, nous allons réécrire une version simplifiée mais fonctionnelle du moteur qui s’appuie sur le même principe que le moteur Catalyst utilisé par Spark : étape par étape, nous allons parser une requête SQL, calculer les plans logique et physique et comprendre en quoi la génération de code à la volée permet d’améliorer les performances lors de l'exécution.
Nous nous attarderons également sur certains aspects plus théoriques qui sont aujourd’hui exploités par la plupart des moteurs SQL, tel que le Volcano Model, les optimisations, etc.
Développeur Java de longue date, Adrien Besnard travaille aujourd'hui majoritairement en Scala et s'est spécialisé dans l'utilisation framework Apache Spark Développeur Scala depuis plusieurs années, Marc Alonso travaille chez OCTO Technology sur des problématiques liées au traitement et au stockage de la donnée, notamment en tant qu'expert Spark.
Inscriptions et informations sur Meetup. Cette session sera suivie d'un pot dans les locaux d’OCTO.
Le PerfUG est un meetup parisien qui a pour objectif d'offrir un lieu d’échanges informels où toutes les personnes intéressées par l’optimisation et la performance sont les bienvenues quel que soit leur niveau. Nous sommes convaincus que la performance est une feature implicite et non négociable d'une application et pourtant bien souvent oubliée. Le PerfUG permet d'échanger idées et pratiques sur ces sujets pour obtenir plus simplement des systèmes performants. Le PerfUG souhaite faciliter la diffusion des derniers outils et des meilleures techniques pour maîtriser au plus tôt la performance d’un système informatique.