Zur Hauptnavigation wechseln Zur Suche wechseln Zum Hauptinhalt wechseln

Wait-Free Code Patching of Multi-Threaded Processes

  • Florian Rommel
  • , Lennart Glauer
  • , Christian Dietrich
  • , Daniel Lohmann

Publikation: Beitrag in Buch/Bericht/Sammelwerk/KonferenzbandAufsatz in KonferenzbandForschungPeer-Review

Abstract

In the operation and maintenance phase of a deployed software component, security and bug-fix updates are regular events. However, for many high-availability services, costly restarts are no acceptable option as the induced downtimes lead to a degradation of the service quality. One solution to this problem are live updates, where we inject the desired software patches directly into the volatile memory of a currently running process. However, before the actual patch gets applied, most live-update methods use a stop-the-world approach to bring the process into a safe state; an operation that is highly disruptive for the execution of multi-threaded programs. In this paper, we present a wait-free approach to inject code changes into a running multi-threaded process. We avoid the disruption of a global barrier synchronization over all threads by first preparing a patched clone of the process’s address space. Into the updated address space, we gradually migrate individual threads at predefined quiescence points while all other threads make uninterrupted progress. In a first case study with a simple network service, we could completely eliminate the impact of applying a live update on the request latency.

OriginalspracheEnglisch
Titel des SammelwerksPLOS'19
UntertitelProceedings of the 10th Workshop on Programming Languages and Operating Systems
ErscheinungsortNew York
Herausgeber (Verlag)Association for Computing Machinery, Inc
Seiten23-29
Seitenumfang7
ISBN (elektronisch)9781450370172
DOIs
PublikationsstatusVeröffentlicht - 27 Okt. 2019
Veranstaltung10th Workshop on Programming Languages and Operating Systems, PLOS 2019: in coIn njunction with the 27th ACM Symposium on Operating Systems Principles, SOSP 2019 - Huntsville, Kanada
Dauer: 27 Okt. 201927 Okt. 2019

Konferenz

Konferenz10th Workshop on Programming Languages and Operating Systems, PLOS 2019
Land/GebietKanada
OrtHuntsville
Zeitraum27 Okt. 201927 Okt. 2019

ASJC Scopus Sachgebiete

  • Software

Dieses zitieren