10
ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

Embed Size (px)

Citation preview

Page 1: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

ACDN: A CDN for Applications

Pradnya KarbhariMichael Rabinovich

Zhen XiaoFred Douglis

AT&T Labs -- Research

Page 2: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

2

Content Distribution Networks Comprise surrogate servers that serve

content on behalf of origin servers Can serve static pages, streaming

content, applications Static pages can be served by client-side

caches as well [Gadde et al. 2000] Same for streaming content

Unique CDN value: Distributing applications Retaining control over content

Page 3: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

3

ACDN Components

Replication framework Dynamically install and uninstall

applications based on demand Maintain replica consistency

Content placement algorithms Request distribution algorithms

Page 4: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

4

Replication Framework Inspired by work on software distribution (e.g.,

Marimba) Metafile for each application containing:

A list of time-stamped files (data and executable files)

An initialization script (or a pointer to it)

FILE /home/applications/mapping/query_engine.cgi 1999.apr.14.08:46:12 FILE /home/applications/mapping/map_database 2000.oct.15.13:15:59 FILE /home/applications/mapping/user_preferences 2001.jan.30.18:00:05

SCRIPT mkdir /home/applications/mapping/access_stats setenv ACCESS_DIRECTORY /home/applications/mapping/access_stats

ENDSCRIPT

Page 5: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

5

Application Metafile

A metafile is a simple static Web page Having a metafile is sufficient to deploy

the application Having the current metafile is sufficient

to bring the application replica up-to-date.

Consistency of application replicas => consistency of cached copies of the metafile

Page 6: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

6

Framework Tasks Creating a replica

Obtaining a metafile Obtaining a tar file with all files listed in the metafile Running the initialization script

Updating a replica Obtaining the diff of metafiles Obtaining files that are new

Deleting a replica Retaining the deleted replica for some time to

process residual requests before physical deletion

Page 7: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

7

Algorithms

Request distribution algorithm Load balancing among servers that have

the requested application Proximity of servers to requesting clients

Content placement algorithm Distributed decision - at each CDN server

Total load on the server Percentage of requests from other regions Prediction of load after replication or migration Placement costs: bytes transferred during

replication vs. bytes transferred during responses

Page 8: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

8

Algorithmic Challenges

Convergence Moving replicas around Load oscillations

Responsiveness and stability Distributed vs. Centralized

Algorithms Interplay between request

distribution and content placement

Page 9: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

9

Load Balancing AlgorithmInitial probabilities: Loop through the replicas in order of decreasing proximity if load(i) < LW prob(i) =1.0 else if LW <= load(i) < HW prob(i) = (HW – load(i)) / (HW – LW) else prob(i) = 0.0

Adjustments: remainder = 1.0 Loop through the replicas in order of decreasing proximity prob(i) = prob(i) * remainder remainder = remainder – prob(i)

Final probabilities: prob(i) = prob(i) / sum of all

Page 10: ACDN: A CDN for Applications Pradnya Karbhari Michael Rabinovich Zhen Xiao Fred Douglis AT&T Labs -- Research

10

Overview of the Prototype

Internet

Client

DNS Redirector

Primary Server

Server2

Server3

Central Replicator

Replicator

Replicator

Replicator