Key Algorithms in a Content Delivery System Akamai Technologies and Carnegie Mellon University Bruce Maggs.

Slides:



Advertisements
Similar presentations
Let's say we want to access domain - reliablescribe.com First we need to buy a computer We need to subscribe to an Internet Service Provider (ISP) The.
Advertisements

Akamai Content Delivery Network Slides from Bruce Maggs.
The Dictionary ADT Definition A dictionary is an ordered or unordered list of key-element pairs, where keys are used to locate elements in the list. Example:
Precept 6 Hashing & Partitioning 1 Peng Sun. Server Load Balancing Balance load across servers Normal techniques: Round-robin? 2.
1 Server Selection & Content Distribution Networks (slides by Srini Seshan, CS CMU)
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Speaker: Cathrin Weiß 11/23/2004 Proseminar Peer-to-Peer Information Systems.
Copyright 2007, Information Builders. Slide 1 Workload Distribution for the Enterprise Mark Nesson, Vashti Ragoonath June, 2008.
Engineering a Content Delivery Network COMPSCI 214 Computer Networks and Distributed Systems Bruce Maggs.
Engineering a Content Delivery Network Bruce Maggs.
1 Routing and Scheduling in Web Server Clusters. 2 Reference The State of the Art in Locally Distributed Web-server Systems Valeria Cardellini, Emiliano.
1 Foundations of Software Design Fall 2002 Marti Hearst Lecture 18: Hash Tables.
Hash Tables How well do hash tables support dynamic set operations? Implementations –Direct address –Hash functions Collision resolution methods –Universal.
Internet Content Providers End Users The Internet: Simple on the Outside…
Hash Tables and Associative Containers CS-212 Dick Steflik.
ECOMMERCE TECHNOLOGY SUMMER 2002 COPYRIGHT © 2002 MICHAEL I. SHAMOS eCommerce Technology Web Content Delivery.
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications 吳俊興 國立高雄大學 資訊工程學系 Spring 2006 EEF582 – Internet Applications and Services 網路應用與服務.
Wide-area cooperative storage with CFS
1 Web Content Delivery Reading: Section and COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:
Content Delivery Networks. History Early 1990s sees 100% growth in internet traffic per year 1994 o Netscape forms and releases their first browser.
Caching and Content Distribution Networks. Web Caching r As an example, we use the web to illustrate caching and other related issues browser Web Proxy.
Hashing in Networked Systems COS 461: Computer Networks Spring 2011 Mike Freedman LB Server.
Asfandyar Qureshi (MIT) Rick Weber (Akamai) Hari Balakrishnan (MIT) John Guttag (MIT) Bruce Maggs (Duke/Akamai) cutting the electric bill for internet-
The Role of Content Delivery Networks in Protecting Web Sites from Attacks Bruce Maggs VP for Research, Akamai Technologies.
Consistent Hashing: Load Balancing in a Changing World
ICS362 Distributed Systems Dr Ken Cosh Week 5. Review Communication – Fundamentals – Remote Procedure Calls (RPC) – Message Oriented Communication – Stream.
Content Overlays (Nick Feamster) February 25, 2008.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
Tracker-based Peer Selection using ALTO Map Information draft-yang-tracker-peer-selection-00 Y. Richard Yang Richard Alimi, Ye Wang, David Zhang, Kai Lee.
Load-Balancing in Content-Delivery Networks Michel Goemans.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
MIT Consistent Hashing: Load Balancing in a Changing World David Karger, Eric Lehman, Tom Leighton, Matt Levine, Daniel Lewin, Rina Panigrahy.
Global Internet Content Delivery Akamai Technologies and Carnegie Mellon University Bruce Maggs.
Akamai vs. Flash Crowds and Distributed Denial of Service Akamai Technologies & Carnegie Mellon Bruce Maggs.
How Akamai Handles Large Events Bruce Maggs Carnegie Mellon Duke Akamai Technologies.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems with Multi-programming Chapter 4.
DYNAMIC LOAD BALANCING ON WEB-SERVER SYSTEMS by Valeria Cardellini Michele Colajanni Philip S. Yu.
Workpackage 3 New security algorithm design ICS-FORTH Ipswich 19 th December 2007.
Lecture 12 Distributed Hash Tables CPE 401/601 Computer Network Systems slides are modified from Jennifer Rexford.
Hashing Fundamental Data Structures and Algorithms Margaret Reid-Miller 18 January 2005.
Tirgul 11 Notes Hash tables –reminder –examples –some new material.
Network Flows Chun-Ta, Yu Graduate Institute Information Management Dept. National Taiwan University.
Globally Distributed Content Delivery Presenter: Baoning Wu 03/25/2003.
Content Distribution Network, Proxy CDN: Distributed Environment
Large Scale Sharing Marco F. Duarte COMP 520: Distributed Systems September 19, 2004.
Engineering a Content Delivery Network Bruce Maggs.
Md Tareq Adnan Centralized Approach : Server & Clients Slow content must traverse multiple backbones and long distances Unreliable.
Algorithms used by CDNs Stable Marriage Algorithm Consistent Hashing.
Consistent Hashing. Hashing E.g., h(x) = (((a x + b) mod P) mod |B|), where P is prime, P > |U| a,b chosen uniformly at random from Z P x is a serial.
School of Computing Clemson University Fall, 2012
Engineering a Content Delivery Network
Load-Balancing in Content-Delivery Networks
The Stable Marriage Problem
Distributed Hash Tables
Oracle Solaris Zones Study Purpose Only
Algorithmic Nuggets in Content Delivery
Hash Table.
Design Unit 26 Design a small or home office network
Design Unit 26 Design a small or home office network
Edge computing (1) Content Distribution Networks
Indexing and Hashing Basic Concepts Ordered Indices
Hash Tables and Associative Containers
Content Distribution Networks
EECS 498 Introduction to Distributed Systems Fall 2017
Database Systems Instructor Name: Lecture-3.
Engineering a Content Delivery Network
Computer Networks Primary, Secondary and Root Servers
Engineering a Content Delivery Network
The Evolution of a Content Delivery Network: A 21-Year Perspective
Presentation transcript:

Key Algorithms in a Content Delivery System Akamai Technologies and Carnegie Mellon University Bruce Maggs

Akamai Services and Products windowsupdate.microsoft.com/

Embedded Image Delivery (e.g., Yahoo!) <html><head> Welcome to xyz.com! Welcome to xyz.com! </head><body> <img src=“ Welcome to our Web site! Welcome to our Web site! Click here to enter Click here to enter </body></html> Embedded URLs are Converted to ARLs ak

End User Akamai DNS Resolution Akamai High-Level DNS Servers 10 g.akamai.net 1 Browser’s Cache OS 2 Local Name Server 3 xyz.com’s nameserver 6 ak.xyz.com 7 a212.g.akamai.net Akamai Low-Level DNS Servers 12 a212.g.akamai.net xyz.com.com.net Root (InterNIC) akamai.net8 select cluster select servers within cluster

Three Algorithms Consistent hashingConsistent hashing Leader electionLeader election Stable marriage with tree constraintsStable marriage with tree constraints

Hashing E.g., h(x) = (((a x + b) mod P) mod |B|), where P is prime, P > |U| a,b chosen uniformly at random from Z P x is a serial number Universe U of all possible objects, set B of buckets. object: set of web objects with same serial number bucket: web server Hash function h: U  B Assigns objects to buckets

f(d) = d + 1 mod 5 Difficulty changing number of buckets bucket object f(d) = d + 1 mod 4

Consistent Hashing Idea: Map both objects and buckets to unit circle. object bucket Assign object to next bucket on circle in clockwise order. new bucket

Complication – Different Views select servers within cluster Low-level DNS servers act independently and may have different ideas about how many and which servers are alive. a212.g.akamai.net Akamai Low-Level DNS Servers

Properties of Consistent Hashing Monotonicity: When a bucket is added/removed, the only objects affected are those that are/were mapped to the bucket. Balance: Objects are assigned to buckets “randomly”. -- can be improved by mapping each bucket to multiple places on unit circle Load: Objects are assigned to buckets evenly, even over a set of views. Spread: An object should be mapped to a small number of buckets over a set of views.

Actual low-level load-balancing alg. a212: a213: a214: a215: random permutations of servers Why? To spread load for one serial number.

Leader Election Example All low-level name servers for a cluster compute the hash table. One is elected leader and distributes its table to the others.All low-level name servers for a cluster compute the hash table. One is elected leader and distributes its table to the others.

And now, some slides from Michel Goemans (high-level load balancing)

Stable Marriages Assignment of men and womenAssignment of men and women -Each man ranks each woman and vice versa -Marriage stable if no pair (m,w) unmatched where m prefers w to his “wife” and w prefers m to her “husband”

Residents-Hospitals Extension Residents-HospitalsResidents-Hospitals -results + algorithm extends to case in which hospital j can accept c(j) residents -In use since 1951 by National Intern Matching Program

Multi-Dimensional Load Not a single constraining resource!Not a single constraining resource! Can be:Can be: -Bandwidth -CPU usage (e.g. key signing for https) -Disk usage (e.g. for cache misses, auction sites) -Memory (e.g. EdgeJava) -Threads (e.g. EdgeJava) -Number of licenses in Realaudio

Stable Allocations With Tree Constraints [G ’00]:[G ’00]: -resources 1,…,k -Supply item j has rooted tree T(j) of constraints V(T(j))={1,…,k} Every node v of T has capacity c(j,v) -Demand item i has basic resource b(i) and demand d(i) When x units mapped to supply j, uses x units of each resource on path in T(j) from b(i) to root of T(j) -Stability as before

Instance of Problem Demand items: (groups of IPs, rule for mapping)Demand items: (groups of IPs, rule for mapping) m=hundreds of thousands m=hundreds of thousands Supply items: cluster of serversSupply items: cluster of serversn=thousands (Incomplete) preference lists for demands based on performance + contract rules(Incomplete) preference lists for demands based on performance + contract rules (Implicit) preference lists for supplies based on alternate choices, contract rules, …(Implicit) preference lists for supplies based on alternate choices, contract rules, … Tree of constraints model various resource constraintsTree of constraints model various resource constraints

[9,9] [0,9] [7,9] [2,9][7,9] [9,9] 2 3 Algorithm for Tree Constraints Demand items request unassigned demands in order of preferenceDemand items request unassigned demands in order of preference When demand i requests x units from j, repeat:When demand i requests x units from j, repeat: -Find lowest (in tree) tight constraint, say node v -Dispose demands (up to x) of lower preference than i and using resources in subtree rooted at v Demand = [0,8] [0,9] [0,6] [0,12] [0,5] [0,7] [load,cap] [2,6] [2,9] [2,12] [3,5] [5,12] [5,7] [10,12] 2 [2,8] [4,9] [12,12] [0,6] [2,9] [10,12] 4 [4,9] [12,12] [4,8] 1 [1,7] [5,9] [8,12] 8 [8,8] [8,9] [12,12]

Rich areas for research Providing database scalabilityProviding database scalability -Efficiency -Consistency -Security Securing a system with physically insecure serversSecuring a system with physically insecure servers