Skip to main navigation Skip to search Skip to main content

Wait-Free Code Patching of Multi-Threaded Processes

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

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer 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.

Original languageEnglish
Title of host publicationPLOS'19
Subtitle of host publicationProceedings of the 10th Workshop on Programming Languages and Operating Systems
Place of PublicationNew York
PublisherAssociation for Computing Machinery, Inc
Pages23-29
Number of pages7
ISBN (Electronic)9781450370172
DOIs
Publication statusPublished - 27 Oct 2019
Event10th Workshop on Programming Languages and Operating Systems, PLOS 2019, held in conjunction with the 27th ACM Symposium on Operating Systems Principles, SOSP 2019: in coIn njunction with the 27th ACM Symposium on Operating Systems Principles, SOSP 2019 - Huntsville, Canada
Duration: 27 Oct 201927 Oct 2019

Conference

Conference10th Workshop on Programming Languages and Operating Systems, PLOS 2019, held in conjunction with the 27th ACM Symposium on Operating Systems Principles, SOSP 2019
Country/TerritoryCanada
CityHuntsville
Period27 Oct 201927 Oct 2019

ASJC Scopus subject areas

  • Software

Cite this