240 likes | 381 Views
Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State? Ashish Goel Stanford University Joint work with Sung-Woo Cho. http://www.stanford.edu/~ashishg. Window size. t. Bandwidth allocation. Consider N best-effort, long-lived flows sharing the Internet
E N D
Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State? Ashish GoelStanford UniversityJoint work with Sung-Woo Cho http://www.stanford.edu/~ashishg ashishg@stanford.edu
Window size t Bandwidth allocation Consider N best-effort, long-lived flows sharing the Internet Each flow only cares about its bandwidth allocation xi = bandwidth allocated to the i-th flow TCP: Additive Increase Multiplicative Decrease ashishg@stanford.edu
Primal-Dual approach to B/W allocation • Constraints: Can not exceed capacity on any link • Convert 0/1 capacity constraints into “smooth” costs • pj = price for link j • Artificial. Known variously as dual costs, shadow prices etc. • Compute the total price wi of all the links in path of i-th flow • Primal update (real): wi high => decrease xi wi low => increase xi • Recompute pj, wi; iterate • Primal-Dual algorithm: compute prices, decide increase/decrease rule ashishg@stanford.edu
Computing dual prices j = Fractional occupancy of link j pj must be an increasing function of j Example: exponential prices, pj = aj Four flows sharing a 1Gbps link Suppose x1 = x2 = x3 = x4 = 100Mbps => pj = a0.4 = very small x1 x2 Suppose x1 = x2 = x3 = x4 = 300Mbps => pj = a1.2 = very large x3 x4 Notice the lack of per-flow state ashishg@stanford.edu
Computing wi • Imagine a field called “dual cost” in IP header • TCP sender initializes this to 0 • Every link along the way can add its own price to this header • TCP recipient sends this field back to the sender in the ACK • Sender can then use this field to modify its rate • Very powerful framework • Question: what can we do with per-flow state? • First, focus on what we can do without per-flow state ashishg@stanford.edu
Example: maximize total throughput [Bartal, Byers, Raz; Plotkin, Shmoys, Tardos; Garg, Konemann] • Use exponential dual prices • Flow i increases xi if its total cost wi is less than 1 and decreases it otherwise • Upon convergence, the algorithm maximizes i xi • Can be made to converge very fast • polylogarithmic time ashishg@stanford.edu
Maximizing throughput: contd Initially, x1 = x2 = x3 = 0 pe, pf¼ 0, x1,x2, x3 increase v2 v3 v1 e f x1 x2 x3 Intermediate step: x1 = x2 = x3 = 0.45+ pe, pf > 0.5, x1,x2 increase, x3 now decreases p p=1 p=1/2 =1 Finally, x1 = x2 = 1, x3 = 0 pe, pf = 1 , x1,x2, x3at equilibrium =0.9 ashishg@stanford.edu
Some perspective ashishg@stanford.edu
Example: congestion minimization [Plotkin, Shmoys, Tardos; Garg, Konemann] • Set OSPF weights using exponential costs • Send packets on shortest paths using these weights • With fixed traffic pattern, congestion (i.e. maximum link occupancy) is minimized ashishg@stanford.edu
Example: utility maximization [Kelly, Maullo, Tan] Goal: maximize i Ui(xi) • Ui = utility function for flow i • Ui is assumed to be concave, non-decreasing, non-negative • Primal-dual algorithm results in utility maximization • Simple rule for updating xi • Prices pj depend only on j • Convergence understood, but not in complete detail [Johari,Tan; Vinnicombe] ashishg@stanford.edu
Example: TCP as implicit primal-dual [Kelly, Maullo, Tan; Low, Peterson, Wang] • TCP reacts to drops • pj = drop probability, which depends only on j • TCP AIMD: reacts to wi = aggregate drop probability along the route • Example: basic TCP approximately follows the dynamics dxi/dt = a - bxi2 wi • Can be interpreted as a primal-dual algorithm • TCP Vegas: implicitly maximizes i log xi • Another variant: maximizes i tan-1xi ashishg@stanford.edu
Bandwidth allocation: goals • Leverage existing theory • Get a “dual cost” field into the IP header • Teach primal-dual algorithms for resource allocation • Algorithmic (Goel: Topics in network algorithms, winter 2006) • Economic (Johari) 2. Does per-flow state give us additional power? ashishg@stanford.edu
Which utility function to maximize? • It is not apriori clear which utility function to maximize • i log xi • i tan-1xi • i xi • mini xi (or max-min fairness; achieved by fair queueing at each router or by the poor stealing from the rich) • Pk(x) = sum of the k smallest xi’s (Prefix functions) • All the above choices are reasonable • And there are many, many more • Need a “fair” allocation • Need to maximize efficiency • Different choices lead to dramatically different allocations ashishg@stanford.edu
v2 v3 v1 vn+1 n-1 long connections n short (1-hop) connections Example Max-min fair solution: Everyone gets bandwidth 1/n, total¼ 2 Max-average solution: Long connections get 0, total= n The average of the two solutions is good for both criteria ashishg@stanford.edu
Another example How to split a pie? But what if there are more constraints? Alice and Eddy want only apple pie Frank: allergic to apples Cathy: equal portions of both pies David: twice as much apple pie as lemon How do we measure the “goodness” of an allocation? ashishg@stanford.edu
Goal: simultaneous optimization • Suppose the utility function is U(x1,x2,…,xN) • Canonical Utility Functions: Assume that U is • Concave (the law of diminishing returns) • Non-decreasing (more bandwidth can not harm) • Symmetric in x1,x2,…,xN • Includes all the utility functions we have seen in this talk, and all the fairness functions we found in the literature • Simultaneous optimization: (Approximately)maximizeU(x)simultaneouslyfor all canonical U ashishg@stanford.edu
Why simultaneous optimization? • Often, the utility function is poorly understood, but is likely to be canonical, e.g. customer satisfaction • Consider the following three allocations of bandwidths to two users • ha,bi • hb,ai • h(a+b)/2,(a+b)/2i • If f measures fairness, then intuitively, f(a,b) = f(b,a) · f((a+b)/2,(a+b)/2) • Hence, f is a symmetric concave function • Simultaneous optimization promotes all reasonable measures of fairness ashishg@stanford.edu
Simultaneous optimization [Goel, Meyerson] • A bandwidth allocation x = hx1,x2,…,xNi is an -approximation for a class of functions if for all feasible allocations y and all functions U in the class, U(x) ¸ U(y) • Pk(x)= sum of the k smallest xi’s (prefix functions) • Theorem: x is an -approximation for the class of all canonical functions if and only if it is an -approximation for the class of all N prefix functions • Gives us some hope • Theorem: There exists an efficient centralized algorithm to ensure = O(log N), and this is the best possible • Question: Can we obtain a TCP-like protocol that does the same thing? ashishg@stanford.edu
Why do we need per-flow state? Initially, x1 = x2 = x3 = 0 pe, pf¼ 0, x1,x2, x3 increase v2 v3 v1 e f x1 x2 x3 Intermediate step: x1 = x2 = x3 = 0.45+ pe, pf > 0.5, x1,x2 increase, x3 now decreases p p=1 p=1/2 =1 Finally, x1 = x2 = 1, x3 = 0 pe, pf = 1 , x1,x2, x3at equilibrium =0.9 ashishg@stanford.edu
Dual prices with per-flow state Four flows sharing a 1Gbps link Suppose x1 = 100, x2 = 200, x3 = 300, x4 = 400 Mbps Assume that the link knows x1,x2,x3,x4 Dual price computation uses simple exponential costs a but with different link occupancy values for different flows x1 x2 x3 x4 For flow 1: Pretendx1 =x2 = x3 = x4 = 100, = 0.4, pj = a0.4 For flow 2: Pretendx1 = 100,x2 = x3 = x4 = 200, = 0.7, pj = a0.7 For flow 3: Pretendx1 = 100,x2 = 200, x3 = x4 = 300, = 0.9, pj = a0.9 For flow 4: x1 = 100,x2 = 200, x3 = 300, x4 = 400, = 1.0, pj = a ashishg@stanford.edu
Primal updates with per-flow state • Really simple: • wi < 1 => increase xi • wi > 1 => decrease xi • Example rule: dxi/dt = -log wi • At equilibrium, for all canonical utility functions U, U(x) ¸ U(y) for all feasible y and with = O(log N) ashishg@stanford.edu
n-1 long connections n short (1-hop) connections How good is = O(log N)? • Pretty good, for a simultaneous optimization v2 v3 v1 vn+1 aTCP-RENO¼ n1/2 aMax-Min¼ n MAX-SUM = 1 aTCP-VEGAS¼ n1/2 (*) ashishg@stanford.edu
Convergence time • Primal-dual algorithm converges exponentially fast with single bottleneck link per flow • If we start from the all zeroes point, we need only polylogarithimic number of iterations (really small) ashishg@stanford.edu
Conclusion • Principled tradeoff of different utility functions and performance measures • Extensions • Convergence time • Heterogeneity: Assume user i has individual utility function fi. Then maximize U(f1(x1), f2(x2), …, fN(xN)) for all canonical U • Clean-Slate directions • Primal-dual as a paradigm to think about networks • Original spirit of TCP: don’t over-optimize for any one feature ashishg@stanford.edu