Thèse soutenue

Intégration de la mémoire persistante dans Java

FR  |  
EN
Auteur / Autrice : Anatole Lefort
Direction : Gaël Thomas
Type : Thèse de doctorat
Discipline(s) : Informatique, données, IA
Date : Soutenance le 24/03/2023
Etablissement(s) : Institut polytechnique de Paris
Ecole(s) doctorale(s) : École doctorale de l'Institut polytechnique de Paris
Partenaire(s) de recherche : Laboratoire : SAMOVAR - Services répartis, Architectures, Modélisation, Validation, Administration des Réseaux - Institut Polytechnique de Paris / IP Paris - Département Informatique / INF
Etablissement opérateur d'inscription : Télécom SudParis (France)
Jury : Président / Présidente : Sara Bouchenak
Examinateurs / Examinatrices : Vivien Quéma, Paolo Romano, Pierre Sutra, Panagiota FATOUROU
Rapporteurs / Rapporteuses : Vivien Quéma, Paolo Romano

Résumé

FR  |  
EN

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'Infinis pan, 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.