Table Of ContentOperating 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