Andromeda — A Distributed Userspace

Loading...
Thumbnail Image
Degree type
Doctor of Philosophy (PhD)
Graduate group
Computer and Information Science
Discipline
Subject
Complexity
Distributed Systems
Generality
Light-touch Distribution
Sandboxing
Security
Computer Sciences
Funder
Grant number
License
Copyright date
2020-02-07T20:19:00-08:00
Distributor
Related resources
Author
Vasilakis, Nikos
Contributor
Abstract

% This text is formatted in LaTeX-style Computing is on a steady trajectory from standalone personal computers to pervasive, heterogeneous, networked computing resources. Distributed software systems are becoming indispensable, but involve a significant (and often unjustifiable) degree of \emph{complexity}. This problem is evident in their setup, development, deployment, and use---all of which are nowhere near their centralized counterparts. Whereas anyone today can write a Bash or Python script to compute on a single computer, scaling out to multiple computers requires expert labor around point'' solutions with expensive setups, restricted programming interfaces, and exorbitant composition costs. \\ To address this problem, I develop the concept of a \emph{distributed userspace}---a language-based overlay environment that bolts distribution onto a conventional (and light) language runtime as an extensible service module. The environment's programming style melds an unusual combination of elements aimed at lowering the aforementioned complexity without any loss of generality. To tackle a growing space of unavoidable distribution trade-offs, it also provides pervasive support for high-level configurability---e.g., node grouping, context rebinding, and interface transform. \\ I build a distributed-userspace prototype, {\scshape Andromeda}, targeting the JavaScript ecosystem. While most of its services are textbook'' implementations, three are novel and demonstrate characteristics that are applicable beyond the context of {\scshape Andromeda}: (i) the storage subsystem, which supports efficient queries on dynamic data, (ii) the node group management subsystem, which adds first-class support for network overlays, and (iii) the task execution subsystem, which supports runtime interface rebinding for safety and performance. The key result is that {\scshape Andromeda} lowers the complexity of employing distributed software while addressing setup, transition, and ecosystem challenges. Particularly telling are three frameworks built on top of {\scshape Andromeda} that retrofit desirable properties into legacy applications with minimal developer effort: {\scshape BreakApp}spawns components in remote compartments, {\scshape Iris}protects co-located components from each other, and {\scshape Ignis}scales out bottlenecked components. These frameworks serve a double purpose: first, they address security and performance issues arising from the complexity-lowering techniques powering \sys; and second, they show the benefits of a general-purpose distributed environment outside the strict context of data-intensive computations, highlighting the benefits of {\scshape Andromeda}'s design decisions.

Advisor
Jonathan M. Smith
Date of degree
2019-01-01
Date Range for Data Collection (Start Date)
Date Range for Data Collection (End Date)
Digital Object Identifier
Series name and number
Volume number
Issue number
Publisher
Publisher DOI
Journal Issue
Comments
Recommended citation