Dynamic Upgrades for High Availability Systems

dc.contributor.advisorHicks, Michaelen_US
dc.contributor.advisorFoster, Jeffrey Sen_US
dc.contributor.authorSaur, Karlaen_US
dc.contributor.departmentComputer Scienceen_US
dc.contributor.publisherDigital Repository at the University of Marylanden_US
dc.contributor.publisherUniversity of Maryland (College Park, Md.)en_US
dc.date.accessioned2016-02-06T06:34:20Z
dc.date.available2016-02-06T06:34:20Z
dc.date.issued2015en_US
dc.description.abstractIn this thesis I show that it is possible to build general-purpose frameworks for efficient, on-line data transformation in support of flexible system services, especially dynamic software updates (DSU). This approach generalizes some of the ideas from prior work on DSU, making those ideas applicable to more situations. In particular, I generalize DSU's notion of in-memory state transformation---normally used to upgrade run-time state to be consistent with the new software---so that it can be applied to data not necessarily stored in memory, and for services other than DSU. To support this thesis, I present three artifacts. First, I present C-strider, a generic, type-aware C heap traversal framework. C-strider constitutes a flexible, easy-to-use framework with which developers can program reusable services that have a heap traversal at their core, e.g., serialization, profiling, invariant checking, and state transformation (in support of DSU). C-strider supports both parallel and single-threaded heap traversals, and I demonstrate that C-strider requires little programmer effort, and the resulting services are efficient and effective. Second, I present KVolve, a data transformation service for NoSQL databases. KVolve is notable in that transformations are carried out on-line and on-demand, as data is accessed, rather than off-line and all at once, which would reduce service availability. Experiments with on-line upgrades of services using KVolve show little overhead during normal operation, and only brief pauses at update-time. Finally, I present Morpheus, a dynamically updatable software-defined network (SDN) controller. Morpheus' architecture is fundamentally distributed, with each service running as a separate process that accesses a shared KVolve instance. Morpheus can update multiple controller applications without loss of availability or degradation of performance.en_US
dc.identifierhttps://doi.org/10.13016/M20F04
dc.identifier.urihttp://hdl.handle.net/1903/17230
dc.language.isoenen_US
dc.subject.pqcontrolledComputer scienceen_US
dc.subject.pquncontrolleddynamic software updatingen_US
dc.subject.pquncontrolledheap traversalen_US
dc.subject.pquncontrolledNoSQLen_US
dc.subject.pquncontrolledsoftware-defined networksen_US
dc.titleDynamic Upgrades for High Availability Systemsen_US
dc.typeDissertationen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Saur_umd_0117E_16625.pdf
Size:
4.89 MB
Format:
Adobe Portable Document Format