eCommons

 

Building Evolvable Distributed Systems for Dynamic Data Center Environments

dc.contributor.authorAltinbuken, Deniz
dc.contributor.chairVan Renesse, Robbert
dc.contributor.committeeMemberOrman, Levent V.
dc.contributor.committeeMemberSirer, Emin G.
dc.contributor.committeeMemberKleinberg, Robert David
dc.date.accessioned2017-04-04T19:12:22Z
dc.date.available2017-04-04T19:12:22Z
dc.date.issued2017-01-30
dc.description.abstractDistributed systems that are built to run in data centers should sustain the expected level of performance and scale to developing workloads, while at the same time handling evolving infrastructure and tolerating failures. To cope with the performance and scalability demands, systems need to incorporate techniques such as sharding, replication, and batching. It is also necessary to support online configuration changes as hardware is being updated or a new version of the system is being deployed. All this is sometimes termed "organic growth" of a distributed system. While there has been much work on how to build large-scale distributed systems as services that run in dynamic data center environments, there is little or no support for evolving them organically and understanding how this evolution changes the system. Moreover, most state-of-the-art distributed systems that undergo evolution and growth become more complex and unmanageable over time, making maintenance of such systems an increasingly difficult task. This thesis introduces Ovid, a framework for building large-scale distributed systems that need to evolve quickly as a result of changes in their functionality or the assumptions they made for their initial deployment. In practice, organic growth often makes distributed systems increasingly more complex and unmanageable. To counter this, Ovid supports transformations, automated refinements that allow distributed systems to be developed from simple components. Ovid models distributed systems as a collection of agents, self-contained state machines that communicate by exchanging messages. Next, it applies a transformation to a system, which replaces agents by one or more new agents, in effect creating a new specification for the system. Transformations can be applied recursively, resulting in a tree of transformations. Examples of transformations include replication, batching, sharding, and encryption. Ovid can automatically replicate for fault-tolerance, shard for scalable capacity, batch for higher throughput, and encrypt for better security. Refinement mappings prove that transformed systems implement the original specification, as shown by the full refinement of a storage system replicated with the Chain Replication protocol to a centralized storage system. The result is a software-defined distributed system, in which a logically centralized controller specifies the components, their interactions, and their transformations. Such systems can be updated on-the-fly, changing assumptions or providing new guarantees while keeping the original implementation of the application logic unchanged. This thesis also presents the implementation of Ovid, which includes an interactive and visual tool for specifying and transforming distributed systems and a run-time environment that deploys and runs the agents in a data center. The interactive designer makes it relatively easy, even for novice users, to construct systems that are scalable and reliable. The designer can be run from any web browser. The run-time environment evolves systems deployed in a data center and manages all execution and communication fully automatically. Finally, the evaluation for a key-value store built with Ovid shows the benefits of building a system using the Ovid framework. The performance evaluation underlines that systems that can evolve and adjust to their environment offer various performance benefits.
dc.identifier.doihttps://doi.org/10.7298/X4X0651F
dc.identifier.otherAltinbuken_cornellgrad_0058F_10161
dc.identifier.otherhttp://dissertations.umi.com/cornellgrad:10161
dc.identifier.otherbibid: 9905940
dc.identifier.urihttps://hdl.handle.net/1813/47693
dc.language.isoen_US
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 International*
dc.rights.urihttps://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.subjectChain replication
dc.subjectDistributed systems
dc.subjectFault tolerance
dc.subjectRefinement mapping
dc.subjectScalable systems
dc.subjectSoftware-defined distributed systems
dc.subjectComputer science
dc.titleBuilding Evolvable Distributed Systems for Dynamic Data Center Environments
dc.typedissertation or thesis
dcterms.licensehttps://hdl.handle.net/1813/59810
thesis.degree.disciplineComputer Science
thesis.degree.grantorCornell University
thesis.degree.levelDoctor of Philosophy
thesis.degree.namePh. D., Computer Science

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Altinbuken_cornellgrad_0058F_10161.pdf
Size:
1.33 MB
Format:
Adobe Portable Document Format