Throughput optimization … Max-flow optimization Zongpeng’s slides: 2-8 Network coding Butterfly example Zongpeng’s slides: 14-15 1 Without network coding … S T1 T2 Using unicast, how much can S send to T1 and T2? Without network coding … S T1 and T2 both get 50% of senders capacity T1 T2 Using unicast, how much can S send to T1 and T2? Without network coding … S T1 T2 Using multicast, how much can S send to T1 and T2? Without network coding … S A,B B C,D D T1 and T2 both B A,B D T1 D C,D B get ¾ streams (75% of senders capacity) T2 Optimization problem equal to “packing of Steiner trees” (NP-hard problem) With network coding … S A A T1 and T2 both get 2/2 streams (100% of senders capacity) Improvement by 33% A B B A+B A+B T1 B A+B T1 S A,B B D B D A,B D T1 C,D S A A C,D B A B A+B A+B T2 B T1 B A+B T1 7 Savings can also be in terms of “bandwidth” … 8 b1 b1 b2 b1 b2 b1 b2 b2 b1 b1 b2 b1 b2 b1 b2 b1+b2 b1+b2 b1+b2 b2 …or “time” … 10 Network Coding Example (animation) a b A technique to improve: 1. network throughput 2. efficiency 3. scalability … a 1 b a b 2 3 a ab a b Information is coded at potentially every node 1 2 3 4 5 abb 5 4 b a ab 6 Network Coding Example (without) a b A technique to improve: 1. network throughput 2. efficiency 3. scalability … a 1 b a 2 b 3 a b a Information is coded at potentially every node 1 2 3 4 5 b 5 4 b a 6 Network Coding Example (with) a b A technique to improve: 1. network throughput 2. efficiency 3. scalability … a 1 b a b 2 3 a ab a b Information is coded at potentially every node 1 2 3 4 ab 5 4 b ab 6 14 6.1: Cache-size discussion Consider first the workloads that these caches will need to serve … 15 6.1: Cache-size discussion Consider first the workloads that these caches will need to serve … ? 16 Request patterns Some research slides … • Diurnal patterns • Geographic differences E.g., ACM TWEB 17 Request patterns Some research slides … • Diurnal patterns • Geographic differences 18 E.g., ACM TWEB, IEEE ICC ‘12 Request patterns Some research slides … • Diurnal patterns • Geographic differences 19 E.g., ACM TWEB, IEEE ICC ‘12 20 Request pattern … E.g., request inter-arrival times Example 1 … ? 21 At a smaller time scale … Often break into stationary periods … Common (but in some cases highly debated) assumption: Poisson request process (independent request arrivals, with exponential inter-arrival time distribution) Remember: nice properties such as “memory less” and PASTA (Poisson Arrivals See Time Average) 22 23 File popularity distribution and “heavy” tails Example slides with YouTube popularity but web object popularity, file size distributions, number of friends in social networks, etc. often see similar “heavy tail” distributions ... Should note (this list can be made very very long, and include things such as the frequency words are used, the size of cities, the size of earthquakes, the size of bacteria cultures … and the list will go on ... and on … and on ... 24 Motivation Video dissemination (e.g., YouTube) can have wide- spread impacts on opinions, thoughts, and cultures 25 E.g., ACM KDD ’12, IFIP Performance ‘11, ACM TWEB Motivation Not all videos will reach the same popularity and have the same impact 26 E.g., ACM KDD ’12, IFIP Performance ‘11, ACM TWEB views Motivation Not all videos will reach the same popularity and have the same impact 27 E.g., ACM KDD ’12, IFIP Performance ‘11, ACM TWEB views Motivation Not all videos will reach the same popularity and have the same impact 28 E.g., ACM KDD ’12, IFIP Performance ‘11, ACM TWEB Views (v) Popularity distribution Rank (r) E.g., ACM KDD ‘12 Views (v) Popularity distribution Rank (r) E.g., ACM KDD ‘12 Views (v) Popularity distribution Rank (r) Views (v) Popularity distribution Rank (r) E.g., ACM KDD ’12, PAM ’12 Views (v) Popularity distribution Rank (r) E.g., ACM KDD ’12, PAM ’12 Views (v) Popularity distribution Rank (r) E.g., ACM KDD ’12, PAM ’12, ACM TWEB Let’s look at an example … Example 2 35 Zipf popularity... Views (v) ... and long tails Rank (r) vr r Zipf popularity... log v Views (v) ... and long tails Rank (r) vr r log r Zipf popularity... log v Views (v) ... and long tails Rank (r) vr r log r log v r log v1 log r Zipf popularity... log v Views (v) ... and long tails Rank (r) vr r log r log v r log v1 log r Zipf popularity... log v Views (v) ... and long tails log r Rank (r) vr r log v r log v1 log r y(x) = x0 -- x Zipf popularity... log v Views (v) ... and long tails log r Rank (r) vr r log v r log v1 log r y(x) = x0 -- x Zipf popularity... log v Views (v) ... and long tails Rank (r) vr r log r log v r log v1 log r Zipf popularity... ... and long tails 6 log v Popularity 10 4 10 2 10 0 10 0 10 Zipf(1e+007,1) MZipf(1e+007,50,1) GZipf(2e+005,0.02,1e-005,1) 2 4 10 10 Rank log r 6 10 log v r log v1 log r Zipf popularity... ... and long tails 6 Popularity 10 4 10 2 10 0 10 0 10 Zipf(1e+007,1) MZipf(1e+007,50,1) GZipf(2e+005,0.02,1e-005,1) 2 4 10 10 6 10 Rank E.g., ACM TWEB, PAM ‘11 IFIP Performance ‘11, IPTPS ‘10 Zipf popularity... ... and long tails Head Trunk 6 Popularity 10 4 10 Tail 2 10 0 10 0 10 Zipf(1e+007,1) MZipf(1e+007,50,1) GZipf(2e+005,0.02,1e-005,1) 2 4 10 10 6 10 Rank Popularity distribution statistics Across services (impact on system design) Lifetime vs current Over different time period (churn) Different sampling methods E.g., ACM TWEB, PAM ’11, IFIP Performance ‘11, IPTPS ‘10 Heavy-tail distributions … “A probability distribution is said to have a heavy tail if the tail is not exponentially bounded” E.g., paper and references therein: “A Tale of the Tails: Power-laws in Internet Measurements”, IEEE Network, Mahanti et al., 2013 Power-law, Pareto, Zipf (in some sense the same) … and then there are many many “heavy tail” distributions, variations and generalizations, including distributions such as log-normal, various generalized Zipf/Pareto distributions, etc. 46 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? 47 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? 48 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) 49 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = 50 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) 51 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = 52 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = exp(-iT) 53 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = exp(-iT) Total miss rate = 54 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = exp(-iT) Total miss rate = i i exp(-iT) 55 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = exp(-iT) Total miss rate = i i exp(-iT) (normalized) hit rate = 56 Let’s build a (very) simple model Poisson request process with request rate N objects; equal size L; Zipf popularity distribution with shape parameter Each request has request frequency i = ?? What is the (normalized) hit rate if cache can store n objects? Approximate large LRU-cache with a TTL-cache T = average time (without request) before cache eviction PASTA (Poisson Arrivals See Time Average) Miss rate object i = i Pr(no request in last T) Pr(no request in last T) = exp(-iT) Total miss rate = i i exp(-iT) (normalized) hit rate = 1 – (i i exp(-iT))/(i i) 57 Let’s build a (very) simple model Expected time object i in cache? 58 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) 59 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = 60 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) 61 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = 62 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) 63 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = 64 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) 65 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) Solve (time in system) = 66 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) Solve (time in system) = (# in system) / (rate in/out) = (1- exp(-iT)) / i exp(-iT) = (1/i)(exp(iT)–1) 67 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) Solve (time in system) = (# in system) / (rate in/out) = (1- exp(-iT)) / i exp(-iT) = (1/i)(exp(iT)–1) Sanity check ... 68 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) Solve (time in system) = (# in system) / (rate in/out) = (1- exp(-iT)) / i exp(-iT) = (1/i)(exp(iT)–1) Sanity check ... Taylor expansion … (e.g., look at small and large i) 69 Let’s build a (very) simple model Expected time object i in cache? Little’s law [averages]: (# in system) = (rate in/out) x (time in system) Identify in system (rate in/out) = (miss rate object i) = i exp(-iT) (# in system) = (copies of object i in the cache) = (1- exp(-iT)) (time in system) = (time object i is in cache until evicted) Solve (time in system) = (# in system) / (rate in/out) = (1- exp(-iT)) / i exp(-iT) = (1/i)(exp(iT)–1) Sanity check ... Taylor expansion … (e.g., look at small and large i) Busy period for a M/D/ 70 71 Rich-gets-richer ... During next week [log] ... and churn Total views thus far [log] E.g., IFIP Performance ‘11 72 Rich-gets-richer ... During next week [log] ... and churn Total views thus far [log] The more views a video has, the more views it is likely to get in the future E.g., IFIP Performance ‘11 73 Rich-gets-richer ... During next week [log] ... and churn Views during week [log] The more views a video has, the more views it is likely to get in the future The relative popularity of the individual videos are highly non-stationary E.g., IFIP Performance ‘11 74 Rich-gets-richer ... ... and churn Week 2 Week4 Week 8 Week 16 Young videos Old videos The more views a video has, the more views it is likely to get in the future The relative popularity of the individual videos are highly non-stationary E.g., IFIP Performance ‘11 75 Rich-gets-richer ... ... and churn Week 2 Week4 Week 8 Week 16 Young videos Old videos The more views a video has, the more views it is likely to get in the future The relative popularity of the individual videos are highly non-stationary Some long-term popularity E.g., IFIP Performance ‘11 76 Rich-gets-richer ... During next week [log] ... and churn Total views thus far [log] The more views a video has, the more views it is likely to get in the future The relative popularity of the individual videos are highly non-stationary Some long-term popularity E.g., IFIP Performance ‘11 77 78