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.