![Thesis Proposes a New Type of Mobile/Cloud Operating System Designed to Meet the Evolving Needs of Modern Applications](https://data.docslib.org/img/3a60ab92a6e30910dab9bd827208bcff-1.webp)
©Copyright 2017 Irene Y. Zhang Towards a Flexible, High-Performance Operating System for Mobile/Cloud Applications Irene Y. Zhang A dissertation submitted in partial fulllment of the requirements for the degree of Doctor of Philosophy University of Washington 2017 Reading Committee: Henry M. Levy, Chair Arvind Krishnamurthy Luis Ceze Program Authorized to Oer Degree: Computer Science & Engineering University of Washington Abstract Towards a Flexible, High-Performance Operating System for Mobile/Cloud Applications Irene Y. Zhang Chair of the Supervisory Committee: Director Henry M. Levy Computer Science & Engineering ¿e convergence of ubiquitous mobile devices, large-scale cloud platforms and pervasive network con- nectivity have changed the face of modern user applications. Unlike a traditional desktop application, which runs on a single machine and supports a single user, the typical user-facing application today spans numerous mobile devices and cloud servers while supporting large numbers of users. ¿is shi signicantly increased the diculty of building new user applications. Programmers must now confront challenges introduced by distributed deployment (e.g., partial failures), new mobile/cloud application features (e.g., reactivity), and new mobile/cloud requirements (e.g., scalability). ¿is thesis proposes a new type of mobile/cloud operating system designed to meet the evolving needs of modern applications. Mobile/cloud applications are the standard applications of the future; thus, they deserve a rst-class operating system that simplies their development and run-time management. Our key contribution is the design, implementation and evaluation of three systems that together form the basis for a new mobile/cloud operating system: (1) Sapphire, a new distributed run-time and process management system, (2) Diamond, a new distributed memory management system, and (3) TAPIR, a new distributed storage system. Each system introduces new operating systems abstractions and mechanisms designed to eliminate the challenges and simplify the develop- ment of mobile/cloud applications. We demonstrate that, like operating systems of the past, these systems make it easier for programmers to build bigger and more complex applications. Table of Contents Page List of Figures...............................................v Glossary.................................................. ix Chapter 1: Overview........................................1 1.1 ¿e Mobile/Cloud Revolution................................2 1.2 ¿e Case for a Mobile/Cloud Operating System.....................3 1.3 Mobile/Cloud Challenges and Application Requirements................6 1.3.1 Mobile/Cloud OS Requirements..........................6 1.3.2 ¿e Challenge of Designing a Mobile/Cloud OS................8 1.4 Existing Mobile/Cloud Systems...............................9 1.4.1 Distributed Storage Systems............................ 11 1.4.2 Service-Oriented Architectures.......................... 13 1.4.3 Distributed Run-time Systems........................... 14 1.4.4 Backend-as-a-Service................................ 16 1.5 Contributions......................................... 18 1.5.1 Run-time Management: Sapphire......................... 18 1.5.2 Memory Management: Diamond......................... 20 1.5.3 Storage Management: TAPIR........................... 21 1.5.4 Summary....................................... 22 Chapter 2: Sapphire......................................... 24 2.1 Background.......................................... 26 i 2.2 Architecture.......................................... 27 2.2.1 Design Goals..................................... 27 2.2.2 System Architecture................................. 28 2.3 Programming Model..................................... 29 2.4 Deployment Kernel...................................... 33 2.5 Deployment Managers.................................... 34 2.5.1 DM Library...................................... 35 2.5.2 DM Structure and API............................... 36 2.5.3 DM Code Example................................. 39 2.5.4 DM Design Examples................................ 42 2.6 Implementation........................................ 45 2.7 Experience & Evaluation................................... 47 2.7.1 Applications..................................... 47 2.7.2 Experimental Setup................................. 52 2.7.3 Microbenchmarks.................................. 52 2.7.4 Deployment Manager Performance........................ 54 2.8 Related Work.......................................... 57 2.9 Summary............................................ 58 Chapter 3: Diamond........................................ 60 3.1 Background.......................................... 62 3.1.1 Roll-your-own Data Management......................... 62 3.1.2 Wide-area Storage Systems............................. 64 3.1.3 Reactive Programming Frameworks....................... 65 3.2 Architecture & Programming Model............................ 65 3.2.1 System Model.................................... 65 3.2.2 Data Model...................................... 66 3.2.3 System Calls..................................... 68 3.2.4 Reactive Data Management Guarantees..................... 70 3.2.5 A Simple Code Example.............................. 71 3.2.6 Oine Support.................................... 73 3.2.7 Security........................................ 74 3.3 System Design......................................... 74 ii 3.3.1 Data Management Architecture.......................... 75 3.3.2 rmap and Language Bindings............................ 75 3.3.3 Transaction Coordination Overview....................... 75 3.4 Wide-area Optimizations.................................. 79 3.4.1 Data-type Optimistic Concurrency Control................... 79 3.4.2 Client Caching with Bounded Validity Intervals................ 80 3.4.3 Data Push Notications............................... 82 3.5 Experience & Evaluation................................... 82 3.5.1 Prototype Implementation............................. 82 3.5.2 Programming Experience............................. 83 3.5.3 Performance Evaluation.............................. 86 3.6 Related Work.......................................... 91 3.7 Summary............................................ 93 Chapter 4: TAPIR.......................................... 95 4.1 Background.......................................... 97 4.2 Inconsistent Replication................................... 99 4.2.1 IR Overview..................................... 99 4.2.2 IR Protocol...................................... 103 4.2.3 Correctness...................................... 111 4.3 Building Atop IR....................................... 114 4.3.1 IR Application Protocol Requirement: Invariant checks must be performed pairwise. ........................................ 114 4.3.2 IR Application Protocol Requirement: Application protocols must be able to change consensus operation results. ...................... 115 4.3.3 IR Performance Principle: Application protocols should not expect operations to execute in the same order. ............................ 116 4.3.4 IR Performance Principle: Application protocols should use cheaper incon- sistent operations whenever possible rather than consensus operations. ... 116 4.4 TAPIR.............................................. 117 4.4.1 Overview....................................... 117 4.4.2 Protocol........................................ 119 4.4.3 Correctness...................................... 130 4.5 TAPIR Extensions....................................... 135 iii 4.5.1 Read-only Transactions............................... 135 4.5.2 Serializability..................................... 137 4.5.3 Synchronous Log Writes.............................. 137 4.5.4 Retry Timestamp Selection............................. 138 4.5.5 Tolerating Very High Skew............................. 138 4.6 Evaluation........................................... 138 4.6.1 Experimental Setup................................. 139 4.6.2 Single Datacenter Experiments.......................... 141 4.6.3 Wide-Area Latency................................. 142 4.6.4 Abort and Retry Rates................................ 144 4.6.5 Comparison with Weakly Consistent Systems.................. 145 4.7 Related Work.......................................... 145 4.7.1 Replication...................................... 146 4.7.2 Distributed Transactions.............................. 147 4.8 Summary............................................ 148 Chapter 5: Conclusion....................................... 149 5.1 Looking Forward: ¿e Path to Adoption.......................... 150 5.2 Concluding Remarks..................................... 151 Bibliography................................................ 152 Appendix A: Open-source Code................................... 169 Appendix B: TLA+ Specication.................................. 170 B.1 Inconsistent Replication Specication........................... 170 B.2 TAPIR Specication...................................... 194 iv List of Figures Figure Number Page 1.1 ¿e evolution of application environments and system architectures. ..........4 1.2 Evaluation of existing systems. We graph each class of systems based on how many mobile/cloud requirements it meets. If the system gives applications control over the requirement or requires applications help meet the requirement, then we draw the requirements as a range between the number of requirements
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages217 Page
-
File Size-