DC FieldValueLanguage
dc.contributor.authorRommel, Florian-
dc.contributor.authorDietrich, Christian-
dc.contributor.authorFriesel, Daniel-
dc.contributor.authorKöppen, Marcel-
dc.contributor.authorBorchert, Christoph-
dc.contributor.authorMüller, Michael-
dc.contributor.authorSpinczyk, Olaf-
dc.contributor.authorLohmann, Daniel-
dc.date.accessioned2021-04-08T08:06:39Z-
dc.date.available2021-04-08T08:06:39Z-
dc.date.issued2020-
dc.identifier.citation14th Symposium on Operating System Design and Implementation (OSDI 2020)de_DE
dc.identifier.urihttp://hdl.handle.net/11420/9228-
dc.description.abstractLive patching has become a common technique to keep long-running system services secure and up-to-date without causing downtimes during patch application. However, to safely apply a patch, existing live-update methods require the entire process to enter a state of quiescence, which can be highly disruptive for multi-threaded programs: Having to halt all threads (e.g., at a global barrier) for patching not only hampers quality of service, but can also be tremendously difficult to implement correctly without causing deadlocks or other synchronization issues. In this paper, we present WfPatch, a wait-free approach to inject code changes into running multi-threaded programs. Instead of having to stop the world before applying a patch, WfPatch can gradually apply it to each thread individually at a local point of quiescence, while all other threads can make uninterrupted progress. We have implemented WfPatch as a kernel service and user-space library for Linux 5.1 and evaluated it with OpenLDAP, Apache, Memcached, Samba, Node.js, and MariaDB on Debian 10 (“buster”). In total, we successfully applied 33 different binary patches into running programs while they were actively servicing requests; 15 patches had a CVE number or were other critical updates. Applying a patch with WfPatch did not lead to any noticeable increase in request latencies — even under high load — while applying the same patch after reaching global quiescence increases tail latencies by a factor of up to 41x for MariaDB.en
dc.language.isoende_DE
dc.titleFrom Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processesde_DE
dc.typeinProceedingsde_DE
dc.type.dinicontributionToPeriodical-
dcterms.DCMITypeText-
tuhh.abstract.englishLive patching has become a common technique to keep long-running system services secure and up-to-date without causing downtimes during patch application. However, to safely apply a patch, existing live-update methods require the entire process to enter a state of quiescence, which can be highly disruptive for multi-threaded programs: Having to halt all threads (e.g., at a global barrier) for patching not only hampers quality of service, but can also be tremendously difficult to implement correctly without causing deadlocks or other synchronization issues. In this paper, we present WfPatch, a wait-free approach to inject code changes into running multi-threaded programs. Instead of having to stop the world before applying a patch, WfPatch can gradually apply it to each thread individually at a local point of quiescence, while all other threads can make uninterrupted progress. We have implemented WfPatch as a kernel service and user-space library for Linux 5.1 and evaluated it with OpenLDAP, Apache, Memcached, Samba, Node.js, and MariaDB on Debian 10 (“buster”). In total, we successfully applied 33 different binary patches into running programs while they were actively servicing requests; 15 patches had a CVE number or were other critical updates. Applying a patch with WfPatch did not lead to any noticeable increase in request latencies — even under high load — while applying the same patch after reaching global quiescence increases tail latencies by a factor of up to 41x for MariaDB.de_DE
tuhh.publisher.urlhttps://www.usenix.org/conference/osdi20/presentation/rommel-
tuhh.type.opusInProceedings (Aufsatz / Paper einer Konferenz etc.)-
dc.type.drivercontributionToPeriodical-
dc.type.casraiConference Paper-
tuhh.container.startpage651-666de_DE
dc.relation.conference14th Symposium on Operating System Design and Implementation (OSDI 2020)de_DE
item.creatorGNDRommel, Florian-
item.creatorGNDDietrich, Christian-
item.creatorGNDFriesel, Daniel-
item.creatorGNDKöppen, Marcel-
item.creatorGNDBorchert, Christoph-
item.creatorGNDMüller, Michael-
item.creatorGNDSpinczyk, Olaf-
item.creatorGNDLohmann, Daniel-
item.languageiso639-1en-
item.creatorOrcidRommel, Florian-
item.creatorOrcidDietrich, Christian-
item.creatorOrcidFriesel, Daniel-
item.creatorOrcidKöppen, Marcel-
item.creatorOrcidBorchert, Christoph-
item.creatorOrcidMüller, Michael-
item.creatorOrcidSpinczyk, Olaf-
item.creatorOrcidLohmann, Daniel-
item.cerifentitytypePublications-
item.openairetypeinProceedings-
item.grantfulltextnone-
item.mappedtypeinProceedings-
item.openairecristypehttp://purl.org/coar/resource_type/c_5794-
item.fulltextNo Fulltext-
crisitem.author.deptOperating Systems E-EXK4-
crisitem.author.orcid0000-0001-9258-0513-
crisitem.author.orcid0000-0002-8008-4165-
crisitem.author.orcid0000-0001-9469-2367-
crisitem.author.parentorgStudiendekanat Elektrotechnik, Informatik und Mathematik-
Appears in Collections:Publications without fulltext
Show simple item record

Page view(s)

6
Last Week
0
Last month
checked on May 8, 2021

Google ScholarTM

Check

Add Files to Item

Note about this record

Export

Items in TORE are protected by copyright, with all rights reserved, unless otherwise indicated.