Dynamic Software Update for Production and Live Programming Environments - Inria - Institut national de recherche en sciences et technologies du numérique
Theses Year : 2018

Dynamic Software Update for Production and Live Programming Environments

Mise à jour Dynamique pour Environnements de Production et Programmation Interactive

Abstract

Updating applications during their execution is used both in production to minimize application downtime and in integrated development environments to provide live programming support. Nevertheless, these two scenarios present different challenges making Dynamic Software Update (DSU) solutions to be specifically designed for only one of these use cases. For example, DSUs for live programming typically do not implement safe point detection or instance migration, while production DSUs require manual generation of patches and lack IDE integration. These solutions also have a limited ability to update themselves or the language core libraries and some of them present execution penalties outside the update window. In this PhD, we propose a unified DSU named gDSU for both live programming and production environments. gDSU provides safe update point detection using call stack manipulation and a reusable instance migration mechanism to minimize manual intervention in patch generation. It also supports updating the core language libraries as well as the update mechanism itself thanks to its incremental copy of the modified objects and its atomic commit operation. gDSU does not affect the global performance of the application and it presents only a run-time penalty during the update window. For example, gDSU is able to apply an update impacting 100,000 instances in 1 second making the application not responsive for only 250 milliseconds. The rest of the time the application runs normally while gDSU is looking for a safe update point during which modified elements will be copied. We also present extensions of gDSU to support transactional live programming and atomic automatic refactorings which increase the usability of live programming environments.
Mettre à jour des applications durant leur exécution est utilisé aussi bien en production pour réduire les temps d’arrêt des applications que dans des environnements de développement interactifs (IDE pour live program- ming). Toutefois, ces deux scénarios présentent des défis différents qui font que les solutions de mise à jour dy- namique (DSU pour Dynamic Software Updating) existantes sont souvent spécifiques à l’un des deux. Par exemple, les DSUs pour la programmation interactive ne supportent généralement pas la détection automatique de points sûrs de mise à jour ni la migration d’instances, alors que les DSUs pour la production nécessitent une génération manuelle de l’ensemble des modifications et manquent d’intégration avec l’IDE. Les solutions existantes ont également une capacité limitée à se mettre à jour elles-mêmes ou à mettre à jour les bibliothèques de base du langage; et certaines d’entre elles introduisent même une dégradation des performances d’exécution en dehors du processus de mise à jour. Dans cette thèse, nous proposons un DSU (nommé gDSU) unifié qui fonctionne à la fois pour la programmation interactive et les environnements de production. gDSU permet la détection automatique des points sûrs de mise à jour en analysant et manipulant la pile d’exécution, et offre un mécanisme réutilisable de migration d’instances afin de minimiser les interventions manuelles lors de l’application d’une migration. gDSU supporte également la mise à jour des bibliothèques du noyau du langage et du mécanisme de mise à jour lui-même. Ceci est réalisé par une copie incrémentale des objets à modifier et une application atomique de ces modifications. gDSU n’affecte pas les performances globales de l’application et ne présente qu’une pénalité d’exécution lors processus de mise à jour. Par exemple, gDSU est capable d’appliquer une mise à jour sur 100 000 instances en 1 seconde. Durant cette seconde, l’application ne répond pas pendant 250 milli-secondes seulement. Le reste du temps, l’application s’exécute normalement pendant que gDSU recherche un point sûr de mise à jour qui consiste alors uniquement à copier les éléments modifiés. Nous présentons également deux extensions de gDSU permettant un meilleur support du développement interac- tif dans les IDEs : la programmation interactive transactionnelle et l’application atomique de reusinages (refactorings).
Fichier principal
Vignette du fichier
main (1).pdf (1.86 Mo) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

tel-02025442 , version 1 (19-02-2019)

Licence

Identifiers

  • HAL Id : tel-02025442 , version 1

Cite

Pablo Tesone. Dynamic Software Update for Production and Live Programming Environments. Software Engineering [cs.SE]. IMT Lille Douai, 2018. English. ⟨NNT : ⟩. ⟨tel-02025442⟩
170 View
213 Download

Share

More