AVIS DE SOUTENANCE de Monsieur Anatole LEFORT

L’Ecole doctorale : Ecole Doctorale de l’Institut Polytechnique de Paris

et le Laboratoire de recherche SAMOVAR – Services répartis, Architectures, MOdélisation, Validation, Administration des Réseaux

présentent

l’AVIS DE SOUTENANCE de Monsieur Anatole LEFORT

Autorisé à présenter ses travaux en vue de l’obtention du Doctorat de l’Institut Polytechnique de Paris, préparé à Télécom SudParis en:

Informatique

« Intégration de la mémoire persistante dans Java »

le VENDREDI 24 MARS 2023 à 9h30

Amphi 7
Télécom SudParis 19 place Marguerite Perey, 91120 Palaiseau

Membres du jury :

M. Gaël THOMAS, Professeur, Télécom SudParis, FRANCE – Directeur de thèse
M. Pierre SUTRA, Maître de conférences, Télécom SudParis, FRANCE – Co-encadrant de thèse
Mme Sara BOUCHENAK, Professeure, INSA Lyon, FRANCE – Examinatrice
Mme Panagiota FATOUROU, Professor, FORTH ICS & University of Crete, CSD, GRECE – Examinatrice
M. Vivien QUEMA, Professeur, Grenoble INP/ENSIMAG, FRANCE – Rapporteur
M. Paolo ROMANO, Associate Professor, Instituto Superior Técnico, University of Lisbon, PORTUGAL – Rapporteur

Résumé :

L’arrivée de la mémoire non-volatile (NVMM) sur le marché propose une alternative rapide et durable pour le stockage de données, avec des performances considérablement accrues par rapport aux supports traditionnels, à savoir SSD et disques durs. La NVMM est adressable à la granularité de l’octet, une caractéristique unique qui permet de maintenir des structures de données complexes par le biais d’instructions mémoires standards, tout en étant résistante aux pannes système et logiciels. Néanmoins, gérer correctement la persistance des données est bien plus compliquée que de simples manipulations mémoire. De plus, chaque bug en NVMM peut désormais compromettre l’intégrité des données ainsi que leur récupération, et il faut donc prendre grand soin quant à sa programmation. Ainsi, de nouvelles abstractions de programmation pour la persistance et l’intégration dans les langages et compilateurs sont nécessaires afin de faciliter l’usage de la mémoire non-volatile. Cette thèse se penche sur ce problème général. Nous expliquons comment intégrer la mémoire persistante dans les langages de programmation managés, et présentons J-NVM, un framework pour accéder efficacement à la NVMM en Java. Avec J-NVM, nous montrons comment concevoir une interface d’accès simple, complète et efficace qui lie les spécificités de la persistance sur NVMM avec la programmation orientée objet. En particulier, J-NVM offre des fonctionnalités pour rendre durable des objets Java avec des sections de code atomiques en cas de panne. J-NVM est construit sans apporter de modifications à l’environnement d’exécution de Java, ce qui favorise sa portabilité aux divers environnements d’exécution de Java. En interne, J-NVM s’appuie sur des objets mandataires qui réalisent des accès directs à la NVMM, gérée comme une mémoire hors-tas. Ce canevas fournit également une bibliothèque de structures de données optimisées pour la NVMM qui restent cohérentes à la suite de redémarrages ou d’arrêts impromptus. Au cours de cette thèse, nous évaluons J-NVM en ré-implémentant la couche de stockage d’Infinispan, une base de données open-source de niveau industriel. Les résultats obtenus avec les benchmarks TPC-B et YCSB, montrent que J-NVM est systématiquement plus rapide que les autres approches existant à l’heure actuelle pour accéder à la NVMM en Java.


Abstract : « A Support for Persistent Memory in Java »

Recently released non-volatile main memory (NVMM), as fast and durable memory, dramatically increases storage performance over traditional media (SSD, hard disk). A substantial and unique property of NVMM is byte-addressability — complex memory data structures, maintained with regular load/store instructions, can now resist machine power-cycles, software faults or system crashes. However, correctly managing persistence with the fine grain of memory instructions is laborious, with increased risk of compromising data integrity and recovery at any misstep. Programming abstractions from software libraries and support from language runtime and compilers are necessary to avoid memory bugs that are exacerbated with persistence. In this thesis, we address the challenges of supporting persistent memory in managed language environments by introducing J-NVM, a framework to efficiently access NVMM in Java. With J-NVM, we demonstrate how to design an efficient, simple and complete interface to weave NVMM-devised persistence into object-oriented programming, while remaining unobtrusive to the language runtime itself. In detail, J-NVM offers a fully-fledged interface to persist plain Java objects using failure-atomic sections. This interface relies internally on proxy objects that intermediate direct off-heap access to NVMM. The framework also provides a library of highly-optimized persistent data types that resist reboots and power failures. We evaluate J-NVM by implementing a persistent backend for Infinispan, an industrial-grade data store. Our experimental results, obtained with a TPC-B like benchmark and YCSB, show that J-NVM is consistently faster than other approaches at accessing NVMM in Java.