DAVID Florian

doctorant à Sorbonne Université
Équipe : REGAL
http://floriandavid.org

Direction de recherche : Gilles MULLER

Co-encadrement : THOMAS Gaël

Profilage Continu et Efficient de Verrous pour Java pour les Architectures Multicoeurs

Le mouvement des Big Data consiste à traiter et à structurer les grandes masses de données, c'est un enjeu crucial pour les entreprises d'aujourd'hui cherchant des solutions pour l'aide à la prise de décision, comprendre les habitudes de consommation de clients ou encore comment surveiller et optimiser leur processus opérationnels. Cependant, traiter de telles masses de données soulève d'importants problèmes. Le traitement de ces données est généralement parallélisé et effectué sur des machines disposant de nombreux coeurs. Cependant, les verrous protégeant les sections critiques sérialisent l'exécution de ces coeurs et peuvent devenir des goulots d'étranglement, dégradant la latence et le débit de traitement de ces données. De plus, il n'est pas aisé de détecter ces problèmes de contention de verrous in-vitro, c'est-à-dire pendant la période de développement du logiciel car il est difficile de reproduire un environnement de production, de créer une charge de travail de clients représentative du contexte dans lequel le logiciel sera déployé et de tester toutes les combinaisons de matériels, systèmes d'exploitation et de machines virtuelles sur lesquelles s'exécutera le logiciel.
Cette thèse présente Free Lunch, un profiler de verrous permettant d'identifier les phases de contention dues aux verrous in-vivo, c'est-à-dire en production. Free Lunch intègre une nouvelle métrique appelée Critical Section Pressure (CSP) dont le rôle est d'évaluer avec précision l'impact de la synchronisation sur le progrès des threads. Free Lunch est directement intégré dans Hotspot, la machine virtuelle Java d'Oracle, afin de minimiser le surcoût d'exécution, ne pas ralentir les applications et pour pouvoir être utilisé en production. Free Lunch reporte la CSP régulièrement pendant l'exécution de façon à pouvoir détecter les problèmes transitoires dus aux verrous.
Free Lunch est évalué sur une trentaine de benchmarks issus des suites Dacapo 9.12, SpecJVM08 et SpecJBB2005, ainsi que sur Cassandra, une base de données conçue pour passer à l'échelle. Nous avons pu identifier des phases de contention dans 6 applications dont certaines d'entre elles n'étaient pas détectées par les profilers actuels. Grâce à ces informations, nous avons pu améliorer la performance de Xalan de 15% en modifiant une seule ligne de code. Nous avons également identifié une phase de haute contention dans Cassandra pendant la période de rejeu du journal des transactions validées pendant la reprise d'un noeud suite à un crash. Nous avons étudié théoriquement et empiriquement les métriques de 7 profilers et nous avons déduit qu'elles ne retournaient pas de résultats significatifs permettant aux développeurs d'identifier les verrous dégradant les performances des applications. Sur toutes les applications testées, Free Lunch ne dégrade jamais les performances de plus de 6% ce qui le rend approprié pour être déployé continuellement dans un environnement de production.

Soutenance : 08/07/2015

Membres du jury :

Pascal FELBER, Professeur (Université de Neuchâtel, Suisse), [Rapporteur]
Laurent REVEILLERE, Maître de Conférences (Laboratoire Bordelais de Recherche en Informatique), [Rapporteur]
Emmanuel CHAILLOUX, Professeur (Laboratoire d'Informatique de Paris 6)
Didier DONSEZ, Professeur (Laboratoire d'Informatique de Grenoble)
Jens GUSTEDT, Directeur de Recherche (INRIA)
Gaël THOMAS, Professeur (Télécom SudParis)
Gilles MULLER, Directeur de Recherche (INRIA / LIP6)

Date de départ : 17/07/2015

Publications 2012-2016