ExperienceswithCoralCDN AFiveYearOpera:onalView - - PowerPoint PPT Presentation

experiences with coralcdn
SMART_READER_LITE
LIVE PREVIEW

ExperienceswithCoralCDN AFiveYearOpera:onalView - - PowerPoint PPT Presentation

ExperienceswithCoralCDN AFiveYearOpera:onalView MichaelJ.Freedman PrincetonUniversity www.coralcdn.org ACoopera:ve,SelfOrganizingCDN Client Resolver 2 5 1 CoralCDN


slide-1
SLIDE 1

Experiences
with
CoralCDN


A
Five‐Year
Opera:onal
View


Michael
J.
Freedman
 Princeton
University


www.coralcdn.org


slide-2
SLIDE 2

CoralCDN


Goal:

To
make
desired
content
widely
available
 regardless
of
publisher’s
own
resources,
by


  • rganizing
and
u:lizing
any
coopera:ve
resources


CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


Coral
index
node


Coral
index
node
 CoralCDN
 HTTP
Proxy
 CoralCDN
 DNS
Server
 Coral
index
node
 CoralCDN
 HTTP
Proxy


Client
 Resolver


1
 2
 3
 4
 5
 6


CoralCDN
 DNS
Server


Coral
index
node


CoralCDN
 HTTP
Proxy


A
Coopera:ve,
Self‐Organizing
CDN


slide-3
SLIDE 3

hPp://example.com/path
 hPp://example.com.nyud.net/path


slide-4
SLIDE 4


 
 
Adopted
by:
 
 
 
 
Clients
 
 
 
 
 
Servers
 
 
 
 
 
 
Third‐par:es


slide-5
SLIDE 5

Many
of
you
have
used
CoralCDN


slide-6
SLIDE 6

Many
of
you
have
used
CoralCDN


slide-7
SLIDE 7

Many
of
you
have
used
CoralCDN


slide-8
SLIDE 8

Many
of
you
have
used
CoralCDN


slide-9
SLIDE 9

Many
of
you
have
used
CoralCDN


slide-10
SLIDE 10

Many
of
you
have
used
CoralCDN


slide-11
SLIDE 11

0.1 1 10 100 Jan’05 Jan’06 Jan’07 Jan’08 Jan’09 Jan’10 Requests per Day (Millions) From Clients To Upstream Proxy/Origin

Daily
Request
Volume


2M
clients


–


2
TB
content


–


20K
origin
domains
 From
300‐400
PlanetLab
servers


slide-12
SLIDE 12

CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


Coral
index
node


CoralCDN
 DNS
Server


Coral
index
node


CoralCDN
 HTTP
Proxy
 CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


CoralCDN


CoralCDN
 HTTP
Proxy


Based
on
peer‐to‐peer
DHT


  • 1. Weakened
consistency
+

algorithms
that


prevent
tree
satura:on
during
lookup


  • 2. Decentralized
clustering
for
locality
and


hierarchical
lookup


  • 3. Coopera:ve
HTTP
/
DNS
that
leverages
locality


Coral
index
node
 Coral
index
node

slide-13
SLIDE 13

CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


Coral
index
node


CoralCDN
 DNS
Server


Coral
index
node


CoralCDN
 HTTP
Proxy
 CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


CoralCDN


CoralCDN
 HTTP
Proxy


Based
on
peer‐to‐peer
DHT


  • 1. Weakened
consistency
+

algorithms
that


prevent
tree
satura:on
during
lookup


  • 2. Decentralized
clustering
for
locality
and


hierarchical
lookup


  • 3. Coopera:ve
HTTP
/
DNS
that
leverages
locality


Coral
index
node
 Coral
index
node

slide-14
SLIDE 14

CoralCDN
 DNS
Server
 CoralCDN
 HTTP
Proxy


Coral
index
node


CoralCDN
 DNS
Server


Coral
index
node


CoralCDN
 HTTP
Proxy
 CoralCDN
 DNS
Server


CoralCDN


CoralCDN
 HTTP
Proxy


Coral
index
node
 CoralCDN
 HTTP
Proxy
 Coral
index
node


Virtualiza:on
Layer


Clients
 Origin
Domains


Interac:ons
with
the
 External
Environment


slide-15
SLIDE 15
  • 1. Experiences


– Naming
 – Fault
Tolerance
 – Resource
management


  • 2. Revisit
CoralCDN’s
design

slide-16
SLIDE 16

Naming


 x

Flexible,
open
API
 Mismatch
with
domain‐based
 access
control
policies


slide-17
SLIDE 17

Rewrite
rules
in
origin
webservers


RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx RewriteCond %{QUERY_STRING} !(^|&)coral-no-serve$ RewriteRule ^(.*)$ http://%{HTTP_HOST}.nyud.net% {REQUEST_URI} [R,L]

CoralCDN’s
Plaaorm‐as‐a‐Service
API


slide-18
SLIDE 18

Sites
integrate
with
load/bandwidth
monitoring


Elas:c
Provisioning


CoralCDN’s
Plaaorm‐as‐a‐Service
API


Rewrite
rules
in
origin
webservers


RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx RewriteCond %{QUERY_STRING} !(^|&)coral-no-serve$ RewriteCond %{HTTP_REFERER} slashdot\.org [NC] RewriteCond %{HTTP_REFERER} digg\.com [NC,OR] RewriteCond %{HTTP_REFERER} blogspot\.com [NC,OR] RewriteRule ^(.*)$ http://%{HTTP_HOST}.nyud.net% {REQUEST_URI} [R,L]

slide-19
SLIDE 19

Naming
Confla:on


  • 1. Loca:on
to
retrieve
content

  • 2. Human‐readable
name
for
administra:ve
en:ty

  • 3. Security
policies
to
govern
objects’
interac:ons


 x x

hPp://domain































/path
 .service2
 .service1


slide-20
SLIDE 20

Domain‐based
Security
Policies


evil.com
 target.com


Cookies


Web
Page


Document
Object
Model


slide-21
SLIDE 21

Domain‐based
Security
Policies


evil.com
 target.com


Cookies


Web
Page


Document
Object
Model


Defaults
violate
least
privilege


.nyud.net
 .nyud.net


slide-22
SLIDE 22

Fault
Tolerance:

Failure
Decoupling


 x

Internal
failures:


  • DHT
nodes

  • DNS
servers,
HTTP
proxies

  • Management
service


External
failures:


  • Decouple
IPs
from
hosts

  • Interac:ons
with
origin
sites

slide-23
SLIDE 23


























happens!


Origin
Status


  • 1. Unresponsive


  • 2. Returns
error
code

  • 3. Reply
truncated


CoralCDN
ReacAon


  • Cache
nega:ve
results

  • Serve
stale
content

  • Use
whole‐file
overwrites

slide-24
SLIDE 24


























happens!


Origin
Status


  • 1. Unresponsive


  • 2. Returns
error
code

  • 3. Reply
truncated


CoralCDN
ReacAon


  • Cache
nega:ve
results

  • Serve
stale
content

  • Use
whole‐file
overwrites


Maintain
status
quo
unless
improvements
are
possible


slide-25
SLIDE 25

What
is
“failure”?


Return
values
should
have
fail‐safe
defaults


slide-26
SLIDE 26

Resource
Management


 x

Control
over
bandwidth
 consump:on
 Control
and
visibility
into
 environment’s
resources


slide-27
SLIDE 27

Some
:meline…


Mar
2004
 CoralCDN
 released
on

 PlanetLab


slide-28
SLIDE 28

Some
:meline…


Mar
2004
 CoralCDN
 released
on

 PlanetLab
 Aug
2004
 SlashdoPed


slide-29
SLIDE 29

Some
:meline…


Mar
2004
 CoralCDN
 released
on

 PlanetLab
 Aug
2004
 SlashdoPed
 Dec
2004
 Asian
 Tsunami


  • 1. PlanetLab
traffic
jumps

  • 2. Site
threatens
to
yank
PL

  • 3. PL
admin
kills
slice

  • 4. Slice
restored
next
day

  • 5. Ini:ates
discussion
of


resource
limits
for
slices



slide-30
SLIDE 30

?

Avg
MB
per
hour
(di)


Demand
>>
Supply:


Enter
Fair‐Sharing
Algorithms


Domains
with
heaviest
consump:on


Σi di ≤ S

slide-31
SLIDE 31

Avg
MB
per
hour
(di)


Demand
>>
Supply:


Enter
Fair‐Sharing
Algorithms


λ


find max λ, s.t.

Σi min (λ, di) ≤ S

Domains
with
heaviest
consump:on


slide-32
SLIDE 32

Demand
>>
Supply:


Enter
Fair‐Sharing
Algorithms


find max λ, s.t.

Σi min (λ, di) ≤ S λ


Domains
with
heaviest
consump:on


slide-33
SLIDE 33

1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 Requests per Domain Unique Domains Ordered by Decreasing Popularity All Responses 1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 Requests per Domain Unique Domains Ordered by Decreasing Popularity All Responses

Admission
Control
under
Fair‐Sharing


1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 Requests per Domain Unique Domains Ordered by Decreasing Popularity All Responses Forbidden Responses

~10
kB
imgs
 3.3%
rejected
 ~5
MB
videos
 89%
rejected


Demand

>

10
TB









Supply

≤ 
2
TB


slide-34
SLIDE 34

Some
:meline…


Mar
2004
 CoralCDN
 released
on

 PlanetLab
 Aug
2004
 SlashdoPed
 Dec
2004
 Asian
 Tsunami


  • 1. PlanetLab
traffic
jumps

  • 2. Site
threatens
to
yank
PL

  • 3. PL
admin
kills
slice

  • 4. Slice
restored
next
day

  • 5. Ini:ates
discussion
of


resource
limits
for
slices



Mar
2006
 PL
deploys
 bandwidth
 throPling


slide-35
SLIDE 35

Resource
Management:

Us
vs.
Them


ApplicaAon
Hammer


  • Track
HTTP
traffic

  • If
site
>
fair
share
rate,


reject
via
HTTP
403


  • If
total
>
peak
rate,


close
server
socket


PlaEorm
Hammer


  • Track
all
network
traffic

  • If
total
>
80%
daily
rate,


BW
shaping
in
kernel


slide-36
SLIDE 36

Resource
Management:

Us
vs.
Them


  • Track
HTTP
traffic

  • If
site
>
fair
share
rate,


reject
via
HTTP
403


  • If
total
>
peak
rate,


close
server
socket


  • Track
all
network
traffic

  • If
total
>
80%
daily
rate,


BW
shaping
in
kernel
 ApplicaAon
Hammer
 PlaEorm
Hammer


Lower
layers
should
expose
greater
 
visibility
and
control
over
resources
 Result:

HTTP
traffic
is
1/2
‐
2/3
of
all
traffic


slide-37
SLIDE 37
  • 1. Experiences


– Naming
 – Fault
Tolerance
 – Resource
management


  • 2. Revisit
CoralCDN’s
design

slide-38
SLIDE 38

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content


1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 100000 1e+06 Requests per URL Unique URLs by Popularity Aug-9-2005 Aug-9-2007 Aug-9-2009

slide-39
SLIDE 39

1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 100000 1e+06 Requests per URL Unique URLs by Popularity Aug-9-2005 Aug-9-2007 Aug-9-2009

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content

slide-40
SLIDE 40

1 10 100 1000 10000 100000 1e+06 1 10 100 1000 10000 100000 1e+06 Requests per URL Unique URLs by Popularity Aug-9-2005 Aug-9-2007 Aug-9-2009

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content


1 10 100 1000 10000 100000 1e+06 1e+07 1 2 3 4 5 6 7 8 9 Requests per domain Time (Days)

slide-41
SLIDE 41

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content


Top
URLs
 %
Reqs
 Agg
Size
(MB)
 

0.01
%
 49.1
%
 






14
 

0.10
%
 71.8
%
 




157
 

1.00
%
 84.8
%
 

3744

 10.00
%
 92.2
%
 28734

 Result
 Frequency
 Local
Cache
 70.4
%
 Origin
Site
 9.9
%
 CoralCDN
Proxy
 7.1
%
 4xx/5xx
Error
 12.6
%


slide-42
SLIDE 42

100 200 300 400 500 600 24 48 72 96 120 144 168 Requests per minute Time (Hours) moonbuggy.org redditmirror.cc 1 10 100 1000 moonbuggy reddit

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content

  • 4. Surviving
flash
crowds
to
content

slide-43
SLIDE 43

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content

  • 4. Surviving
flash
crowds
to
content


100 200 300 400 500 600 24 48 72 96 120 144 168 Requests per minute Time (Hours) moonbuggy.org redditmirror.cc 1 10 100 1000 moonbuggy reddit

slide-44
SLIDE 44

Usage
Scenarios


  • 1. Resurrec:ng
old
content

  • 2. Accessing
unpopular
content

  • 3. Serving
long‐term
popular
content

  • 4. Surviving
flash
crowds
to
content


24%
epochs
 
≥
1
domain
with
 10x
incr
 0.006%
epochs
 ≥
1
domain
with

 100x
incr
 0
%
epochs
 ≥
1
domain
with

 1000x
incr


5
second
epochs
 10
minute
epochs


99.93%
epochs
 
≥
1
domain
with
 10x
incr
 28%
epochs
 
≥
1
domain
with
 100x
incr
 0.21%
epochs
 ≥
1
domain
with

 1000x
incr


slide-45
SLIDE 45

Conclusions?


  • Most
requested
content
is
long‐term
popular


and
already
cached
locally


  • “Flash”
crowds
occur,
but
on
order
of
minutes

slide-46
SLIDE 46

Conclusions?


  • Most
requested
content
is
long‐term
popular


and
already
cached
locally


  • “Flash”
crowds
occur,
but
on
order
of
minutes

  • Focus
on
long‐term
popular

  • LiPle
/
no
HTTP
coopera:on

  • Global
discovery

(e.g.,
DNS)

  • Focus
on
flash
crowds

  • Regional
coop.
as
default

  • Global
coop.
as
failover

slide-47
SLIDE 47

Reconfiguring
CoralCDN’s
design


  • Leverage
Coral
hierarchy
for
lookup


Latency
90%










Origin
Load
5%










Failover
to
global
0.5%


slide-48
SLIDE 48

Reconfiguring
CoralCDN’s
design


  • Leverage
Coral
hierarchy
for
lookup

  • During
admission
control,
bias
against
long‐term
use


Σi min (λ, di) < S

heavily
weight
history
in
ewma


λ


slide-49
SLIDE 49
  • 1. Experiences


– Naming
 – Fault
Tolerance
 – Resource
management


  • 2. Revisit
CoralCDN’s
design


– Current
design
unnecessary
for
deployment
/
most
use
 – Easy
changes
to
promote
flash‐crowd
mi:ga:on


Conclusions


slide-50
SLIDE 50

Can
we
reach
Internet
scale?


www.firecoral.net


Ini:al
beta‐release


  • f
browser‐based
P2P
web
cache