Krishnamurthy, ArvindLevy, Henry MLebeck, Niel Ian2020-04-302020-04-302020-04-302020Lebeck_washington_0250E_21170.pdfhttp://hdl.handle.net/1773/45472Thesis (Ph.D.)--University of Washington, 2020Modern distributed apps aim to provide high-fidelity experiences, with natural user interfaces and seamless interaction between users around the world. However, distributed apps face fundamental constraints on network latencies and mobile device computational power. These constraints make life hard for app developers, requiring them to use high-latency resources such as the disk and network. When working with high-latency resources today, developers must use cumbersome asynchronous programming models, keep app data stored in multiple locations with different representations, and reason about tradeoffs in the locations of data and computation. This thesis presents three systems that simplify distributed app development by providing developer-friendly interfaces to high-latency resources. Diamond allows apps to access shared data with strong guarantees and scalable performance. Hercules lets apps expose uncertainty in shared data and respond instantly to user input. Marvin provides a transparent interface for swapping memory to disk that is tailored to mobile devices. We show that these systems simplify the developer experience, experimentally demonstrate that they do not sacrifice performance, and suggest directions for future work.application/pdfen-USCC BYComputer scienceComputer science and engineeringSimplifying High-Performance Data Management for Distributed ApplicationsThesis