ebook img

Amin Vahdat PDF

225 Pages·1999·0.84 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Amin Vahdat

Operating System Services for Wide-Area Applications by Mohammad Amin Vahdat B.S. (University of California, Berkeley) 1992 A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the GRADUATE DIVISION of the UNIVERSITY of CALIFORNIA, BERKELEY Committee in charge: Professor Thomas E. Anderson, Cochair Professor John D. Kubiatowicz, Cochair Professor Anthony D. Joseph Professor Kenneth Y. Goldberg Fall 1998 The dissertation of Mohammad Amin Vahdat is approved: Cochair Date Cochair Date Date Date University of California at Berkeley Fall 1998 Operating System Services for Wide-Area Applications Copyright Fall 1998 by Mohammad Amin Vahdat 1 Abstract Operating System Services for Wide-Area Applications by Mohammad Amin Vahdat Doctor of Philosophy in Computer Science University of California, Berkeley Professor Thomas E. Anderson, Cochair Professor John D. Kubiatowicz, Cochair Withover 100 millionusersand25 millionhosts, theInternet hasachieved the criticalmass necessary to support new classes of wide-area distributed applications, including electronic commerce, news services, multi-player gaming, and interactive multimedia. Unfortunately, robust deployment of such applications is hampered by limited latency, bandwidth, and availabilityof Internet services deployed at a singlecentralized site. Thisdissertation advo- cates the construction of virtual services able to dynamically migrate and replicate across the wide area. However, such virtual services requires a rethinking of all aspects of dis- tributed services, including naming, persistent storage, remote execution, and security. The hypothesis of this dissertation is that remotely programmable network ele- ments allow for a restructuring of wide-area systems that will improve wide-area resource utilization, simplify application development, and improve end-to-end performance. To 2 support our hypothesis we propose novel solutions to address the unique requirements of distributed applications for wide-area naming, persistent storage, and security. A princi- ple that cuts across all of our solutions is (cid:13)exibility. The heterogeneity of the wide-area network, clients, and service providers dictates that no single policy is appropriate for all applications in all situations. By including (cid:13)exibility in our solutions from the ground up, we ensure that our techniques are applicable to a wide variety of distributed applications. Further, with (cid:13)exibility, our techniques are likely to remain applicable as the Internet and its applications continue to evolve. This dissertation makes the following speci(cid:12)c contributions in support of virtual services by proposing and evaluating: (i) location-independent programs to (cid:12)nd and re- trieve wide-area resources, (ii) combining communication and persistence in a location- independent (cid:12)le system with (cid:13)exible cache coherence policies, (iii) techniques for caching the resultsofdynamicallygeneratedWeb content, and(iv)awide-areasecuritysystemthat provides high performance and availabilitydespite network limitations, (cid:12)ne-grainedcontrol over remotely programmableresources, andrightstransferandrevocation betweenmultiple administrative domains. This dissertation also demonstrates that integrating these tech- niques simpli(cid:12)es the development of a number of wide-area applications, including a Web server capable of dynamically replicating itself across the wide area in response to client access patterns. 3 Professor Thomas E. Anderson Dissertation Committee Cochair Professor John D. Kubiatowicz Dissertation Committee Cochair iii To my wife Suzanne Vahdat, my constant source of inspiration iv Contents List of Tables viii List of Figures ix 1 Introduction 1 1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Application Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2 Experimental Validation . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 Our Approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5 Thesis and Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 System Goals and Design 17 2.1 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.1 Example: Rent-A-Server . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1 Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.2 System Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 Active Naming 31 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.1 Background and Motivation . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.2 The Active Name Approach . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 Architecture and Implementation . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.1 Dynamic Code Location . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.2.2 Active Name Resolver . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2.3 After-Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 CONTENTS v 3.3.1 Mobile Distillation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3.2 Extensible Cache Management . . . . . . . . . . . . . . . . . . . . . 54 3.3.3 Replicated Service Location . . . . . . . . . . . . . . . . . . . . . . . 58 3.3.4 Personalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4 Global File System 67 4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.2.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.2.2 Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2.3 HTTP Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2.4 Authentication and Security . . . . . . . . . . . . . . . . . . . . . . . 75 4.3 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.4 Cache Coherence Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.4.1 General File Sharing: Last Writer Wins . . . . . . . . . . . . . . . . 78 4.4.2 Internet Chat: Append Only . . . . . . . . . . . . . . . . . . . . . . 79 4.4.3 Stock Ticker: Multicast Updates . . . . . . . . . . . . . . . . . . . . 81 4.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5 Transparent Result Caching 88 5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.2 System Design and Implementation . . . . . . . . . . . . . . . . . . . . . . . 92 5.2.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.2.2 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2.3 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.3.1 Unmake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.3.2 Transparent Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.3.3 Dynamic Web Caching . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6 Security 115 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.2 Design Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.3 System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.3.1 Validating and Revoking Statements . . . . . . . . . . . . . . . . . . 125 6.3.2 Processes and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.3.3 Hierarchical Trust . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.3.4 Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.3.5 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 6.3.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 CONTENTS vi 6.4 CRISIS Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.4.1 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.4.2 Accessing a Remote File . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.4.3 Running a Remote Job . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.5 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.6 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 7 Rent-A-Server 152 7.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7.3 Current Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.4 System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 7.5 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.5.1 Dynamic Recruitment of Resources . . . . . . . . . . . . . . . . . . . 159 7.5.2 Reduced Wide-Area Latency and Bandwidth . . . . . . . . . . . . . 162 7.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 8 Related Work 167 8.1 Distributed Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . 167 8.2 Cluster Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 8.3 Global Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 8.3.1 GOST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 8.3.2 Globe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 8.3.3 Globus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 8.3.4 Legion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 8.3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.4 Scalable Internet Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.4.1 Active Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8.4.2 TACC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8.4.3 Active Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 8.5 Remote Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 8.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9 Conclusions and Future Work 180 9.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.2.1 Scalability and Fault Tolerance . . . . . . . . . . . . . . . . . . . . . 183 9.2.2 Performance Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.2.3 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.2.4 Application Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.2.5 Resource Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.2.6 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

Description:
Operating System Services for Wide-Area Applications by. Mohammad Amin Vahdat. B.S. University of California, Berkeley 1992. A dissertation
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.