ROMaN: Revenue driven Overlay Multicast Networking Varun Khare.

Presentation on theme: "ROMaN: Revenue driven Overlay Multicast Networking Varun Khare."— Presentation transcript:

ROMaN: Revenue driven Overlay Multicast Networking Varun Khare

Agenda  Problem Statement  Dynamic Programming  Application to ROMaN

Problem Statement  Dedicated Server farm placed strategically over the Internet  ISP Cost: ISP charge for bandwidth consumption at Server sites ISP

Problem Statement  Distribute users in a meaningful fashion: »Optimize user delay performance OR »Minimize the ISP cost of servicing the end-users ISP Origin

Problem Statement  Given »ISP charging function c i and »available bandwidth B i of all K servers deployed  Find the user distribution u i at each server SRV i for N users where each user consumes b bandwidth, such that »Σu i = N; u i. b ≤ B i and »Σc i.(u i. b) the ISP cost of deploying group is minimized

Dynamic Programming  Dynamic Programming is an algorithm design technique for optimization problems: often minimizing or maximizing.  DP solves problems by combining solutions to subproblems.  Idea: Subproblems are not independent. »Subproblems may share subsubproblems, »However, solution to one subproblem may not affect the solutions to other subproblems of the same problem.  DP reduces computation by »Solving subproblems in a bottom-up fashion. »Storing solution to a subproblem the first time it is solved. »Looking up the solution when subproblem is encountered again.  Key: determine structure of optimal solutions

Steps in Dynamic Programming 1.Characterize structure of an optimal solution. 2.Define value of optimal solution recursively. 3.Compute optimal solution values either top- down with caching or bottom-up in a table. 4.Construct an optimal solution from computed values. We’ll apply the above steps to our problem.

Optimal Substructure Let cost(n,k) = Cost of distributing n users amongst k servers 1. If k =1, then cost(n,1) = c 1 (n) 2. If k >1 then distribute i users on k-1 servers cost(n-i, k-1) + n-i users on k th server c k (i) Let cost(n,k) = Cost of distributing n users amongst k servers 1. If k =1, then cost(n,1) = c 1 (n) 2. If k >1 then distribute i users on k-1 servers cost(n-i, k-1) + n-i users on k th server c k (i)  Optimal solution to distribute N users amongst K servers contain optimal solution to distribute i users amongst j servers (i ≤ N and j ≤ K)

Recursive Solution  cost[i, j] = Optimal ISP Cost of distributing i users amongst j servers  We want cost[N,K]. This gives a recursive algorithm and solves the problem.

Example  Start by evaluating cost(n,1) where n = 0,1 … N Since k=1 there is no choice of servers  Thereafter evaluate cost(n,2) where n = 0,1 … N K0K0 K1K1 K2K2 0 0 1 1 2 2 3 3 ServersCost Function K0K0 C 0 (x) = x K1K1 C 1 (x) = x/2 K2K2 C 2 (x) = x/4

Example K0K0 K1K1 K2K2 0 00 1 11/2 2 22/2 3 33/2 ServersCost Function K0K0 C 0 (x) = x K1K1 C 1 (x) = x/2 K2K2 C 2 (x) = x/4 cost(3,2) = min { cost(3,1) + C 2 (0) = 3 cost(2,1) + C 2 (1) = 2 + ½ cost(1,1) + C 2 (2) = 1 + 2/2 cost(0,1) + C 2 (3) = 0 + 3/2 } = 3/2

Example  Eventually evaluating cost(N,K) gives optimized cost of deploying multicast group  Runtime O(K.N 2 ) and space complexity O(K.N) K0K0 K1K1 K2K2 0 000 1 11/21/4 2 22/22/4 3 33/23/4 ServersCost Function K0K0 C 0 (x) = x K1K1 C 1 (x) = x/2 K2K2 C 2 (x) = x/4

Thank You! Questions