Résumé en une phrase
Tester et benchmarker les nouveaux Virtual Threads de Java dans le contexte d’Atoti afin de simplifier la gestion du parallélisme tout en maintenant un haut niveau de performance.
Contexte
Atoti, notre plateforme dédiée à l’analyse de données massives, utilise une architecture hautement multithreadée pour effectuer des chargements, des calculs et diverses opérations en parallèle. Actuellement, ce parallélisme est majoritairement pris en charge par les ForkJoinTasks, une technologie puissante mais complexe à maintenir. Les récents Virtual Threads de Java, introduits dans le cadre du projet Loom, offrent une approche plus simple de la gestion des threads. Nous espérons que cette nouvelle technologie simplifiera notre base de code tout en conservant des performances élevées.
Descriptif Du Stage
Ce stage vous permettra d’explorer l’utilisation des Virtual Threads dans un environnement multithreadé intensif comme Atoti. L’objectif sera de comprendre comment ces nouveaux threads se comparent aux ForkJoinTasks, en termes de simplicité d’implémentation, de gestion des ressources et de performances.
Les principales missions seront les suivantes:
- Découverte des Virtual Threads et des ForkJoinTasks: comprendre leurs principes de fonctionnement et leurs spécificités.
- Implémentation progressive: mettre en place les Virtual Threads dans une partie réduite de notre code base, tout en assurant une transition progressive avec les ForkJoinTasks.
- Benchmarking: réaliser des tests de performance pour évaluer les gains ou pertes en termes de rapidité et de scalabilité. Un point crucial sera la gestion du nombre de Virtual Threads exécutés simultanément et leur impact sur la performance du système.
- Migration hybride: proposer et tester des solutions permettant de faire coexister ForkJoinTasks et Virtual Threads afin de faciliter une migration progressive de l’ensemble de la code base.
L’objectif final est de déterminer si les Virtual Threads peuvent remplacer les ForkJoinTasks à plus grande échelle dans Atoti, et sous quelles conditions cette transition serait optimale.
Objectifs
- Comprendre et maîtriser les technologies des Virtual Threads et des ForkJoinTasks.
- Mettre en place une solution hybride utilisant les deux systèmes de manière complémentaire.
- Benchmarker les performances des Virtual Threads dans un environnement réel de traitement de données massives.
- Proposer des recommandations sur l’adoption des Virtual Threads dans Atoti, avec une attention particulière sur la gestion de la concurrence et la scalabilité.
Technologies
Java (JDK 21+), ForkJoinTask, Virtual Threads (Project Loom), parallélisme, JVM performance tuning, cloud benchmarking.
Ce stage, d’une durée de 5 à 6 mois, se déroulera à Paris et pourrait déboucher sur une offre de CDI au sein de notre équipe R&D, vous offrant l’opportunité d’influencer directement l’évolution technologique de la plateforme Atoti.