Andromeda — A Distributed Userspace

Nikos Vasilakis, University of Pennsylvania


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 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 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, 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 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 Andromeda lowers the complexity of employing distributed software while addressing setup, transition, and ecosystem challenges. Particularly telling are three frameworks built on top of Andromeda that retrofit desirable properties into legacy applications with minimal developer effort: BreakAppspawns components in remote compartments, protects co-located components from each other, and scales out bottlenecked components.These frameworks serve a double purpose: first, they address security and performance issues arising from the complexity-lowering techniques powering ; and second, they show the benefits of a general-purpose distributed environment outside the strict context of data-intensive computations, highlighting the benefits of Andromeda's design decisions.

Subject Area

Computer science

Recommended Citation

Vasilakis, Nikos, "Andromeda — A Distributed Userspace" (2019). Dissertations available from ProQuest. AAI22623593.