|Publisher DOI:||10.1145/3365137.3365404||Title:||Wait-Free Code Patching of Multi-Threaded Processes||Language:||English||Authors:||Rommel, Florian
|Issue Date:||Oct-2019||Publisher:||ACM||Source:||Workshop on Programming Languages and Operating Systems (PLOS 2019)||Abstract (english):||
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.
|Conference:||10th Workshop on Programming Languages and Operating Systems (PLOS 2019)||URI:||http://hdl.handle.net/11420/9235||Document Type:||Chapter/Article (Proceedings)|
|Appears in Collections:||Publications without fulltext|
Show full item record
checked on Apr 21, 2021
Add Files to Item
Note about this record
Cite this record
Items in TORE are protected by copyright, with all rights reserved, unless otherwise indicated.