Democratizing Content Publication with Coral - The Coral Content ...

Democratizing Content Publication with Coral - The Coral Content ...

Democratizing ContentPublication with CoralMike FreedmanEric FreudenthalDavid MazièresNew York UniversityNSDI 2004

A problem…Feb 3: Google linked banner to “julia fractals”Users clicking directed to Australian University web site…University’s network link overloaded, web server takendown temporarily…

The problem strikes again! Feb 4: Slashdot ran the story about Google …Site taken down temporarily…again

The response from down under… Feb 4, later…Paul Bourke asks:“They have hundreds (thousands?) of serversworldwide that distribute their traffic load. If evena small percentage of that traffic is directed to asingle server … what chance does it have?”Help the little guy

Coral’s solution…OriginServerCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvBrowserBrowserCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvBrowserBrowserPool resources to dissipate flash crowds Strong locality without a priori knowledge No hotspots in CDN Should all work automatically with nobody in charge

Contributions Self-organizing clusters of nodes NYU and Columbia prefer one another to Germany Rate-limiting mechanism Everybody caching and fetching same URL does notoverload any node in system Decentralized DNS Redirection Works with unmodified clientsNo centralized management or a priori knowledgeof proxies’ locations or network configurations

Using CoralCDN Rewrite URLs into “Coralized” Directs clients to Coral, which absorbs load Who might “Coralize” URLs? Web server operators Coralize URLs Coralized URLs posted to portals, mailing lists Users explicitly Coralize URLs

CoralCDN componentsdnssrvOriginServer??httpprxhttpprxFetch datafrom nearbyDNS RedirectionReturn proxy,preferably onenear Caching

Functionality needed DNS: Given network location of resolver, returna proxy near the clientput (network info, self)get (resolver info){proxies} HTTP: Given URL, find proxy caching object,preferably one nearbyput (URL, self)get (URL){proxies}

Use a DHT? Supports put/get interface using key-based routing Problems with using DHTs as givenNYCJapanNYUNYC ColumbiaGermany Lookup latency Transfer latency Hotspots

Coral distributed index Insight: Don’t need hash table semantics Just need one well-located proxy put (key, value, ttl) Avoid hotspots get (key) Retrieves some subset of values put under key Prefer values put by nodes near requestor Hierarchical clustering groups nearby nodes Expose hierarchy to applications Rate-limiting mechanism distributes puts

CoralCDN componentshttpprxdnssrvhttpprxFetch datafrom nearbyDNS RedirectionReturn proxy,preferably onenear Caching

CoralCDN componentsCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvCoralhttpprxdnssrvgetCoralhttpprxdnssrvgetCoralhttpprxdnssrvFetch datafrom nearbyDNS RedirectionReturn proxy,preferably onenear Caching

Key-based XOR routing000… Distance to key111…ThresholdsNone< 60 ms Minimizes lookup latency< 20 ms Prefer values stored by nodes within faster clusters

Prevent insertion hotspots Store value once in each level clusterAlways storing at closest node causes hotspotNYU…(log n)reqs / min Halt put routing at full and loaded node Full M vals/key with TTL > ½ insertion TTL Loadedputs traverse node in past minute Store at furthest, non-full node seen

Challenges for DNS Redirection Coral lacks… Central management A priori knowledge of network topology Anybody can join system Any special tools (e.g., BGP feeds) Coral has… Large # of vantage points to probe topology Distributed index in which to store network hints Each Coral node maps nearby networks to self

Coral’s DNS Redirection Coral DNS server probes resolver Once local, stay localWhen serving requests from nearby DNS resolver Respond with nearby Coral proxies Respond with nearby Coral DNS serversEnsures future requests remain local Else, help resolver find local Coral DNS server

DNS measurement mechanismCoralhttpprxdnssrvServer probes client (2 RTTs)ResolverBrowserCoralhttpprxdnssrv Return servers within appropriate clustere.g., for resolver RTT = 19 ms, return from cluster < 20 ms Use network hints to find nearby serversi.e., client and server on same subnet Otherwise, take random walk within cluster

Experimental results Consider requests to Australian web site: Does Coral absorb flash crowds? Does clustering help latency? Does Coral form sensible clusters? Does Coral prevent hotspots? Experimental setup 166 PlanetLab hosts; Coral node and client on each Twelve 41-KB files on 384 Kb/sec (DSL) web server (0.6 reqs / sec) / client32,800 Kb/sec aggregate

Solves flash-crowd problemCoral hits in20 ms clusterLocal caches begin tohandle most requestsHits to originweb server

Benefits end-to-end client latency

Benefits end-to-end client latency

Finds natural clusters Nodes share letter Size of letterin same < 60 ms clusternumber of collocated nodesin same cluster

Prevents put hotspots494 nodes321 Nodes aggregate put/get rate: ~12 million / min Rate-limit per node ( ): 12 / min RPCs at closest leaked through 7 others: 83 / min

Conclusions Coral indexing infrastructure Provides non-standard P2P storage abstraction Stores network hints and forms clusters Exposes hierarchy and hints to applications Prevents hotspots Use Coral to build fully decentralized CDN Solves Slashdot effect Popular data widely replicated highly available Democratizes content publication

For more information…

More magazines by this user
Similar magazines