Presentation is loading. Please wait.

Presentation is loading. Please wait.

NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media.

Similar presentations


Presentation on theme: "NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media."— Presentation transcript:

1 NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

2 NUS.SOC.CS5248 Ooi Wei Tsang 2 You Are Here Network Encoder Sender Middlebox Receiver Decoder

3 NUS.SOC.CS5248 Ooi Wei Tsang 3 Cache Proxies for Web A

4 NUS.SOC.CS5248 Ooi Wei Tsang 4 Hierarchical Caching A B

5 NUS.SOC.CS5248 Ooi Wei Tsang 5 Cooperative Caching AB

6 NUS.SOC.CS5248 Ooi Wei Tsang 6 Distributed Caching AB

7 NUS.SOC.CS5248 Ooi Wei Tsang 7 Streaming Media vs. Webpage

8 NUS.SOC.CS5248 Ooi Wei Tsang 8 Video Access Pattern by S. Acharya and B. Smith in 1999 Study at Lulea University, Sweden 55% complete, 45% stop very early High temporal locality

9 NUS.SOC.CS5248 Ooi Wei Tsang 9 Prefix Access Distribution

10 NUS.SOC.CS5248 Ooi Wei Tsang 10 Video Popularity Assume Zipf “Law” Probability of access to i-th most popular video is

11 NUS.SOC.CS5248 Ooi Wei Tsang 11 Benefits of Caching

12 NUS.SOC.CS5248 Ooi Wei Tsang 12 Reduce Access Latency :):(

13 NUS.SOC.CS5248 Ooi Wei Tsang 13 Reduce Server Load

14 NUS.SOC.CS5248 Ooi Wei Tsang 14 Reduce Start-up Latency

15 NUS.SOC.CS5248 Ooi Wei Tsang 15 Hide Network Congestion

16 NUS.SOC.CS5248 Ooi Wei Tsang 16 Other Issues What to cache? Who to fetch from? When cache is full, who to kick out? How to measure popularity? Can cache adapt to popularity?

17 NUS.SOC.CS5248 Ooi Wei Tsang 17 What to Cache?

18 NUS.SOC.CS5248 Ooi Wei Tsang 18 Segmentation Cache “all or none” is bad Divide media file into segments and consider each segment individually

19 NUS.SOC.CS5248 Ooi Wei Tsang 19 Effects of Size S Large S : Low utilization Small S : Lots of gaps

20 NUS.SOC.CS5248 Ooi Wei Tsang 20 Prefix Caching Policy 1 Chunk = k segments

21 NUS.SOC.CS5248 Ooi Wei Tsang 21 Caching Policy Basic unit of caching: segment Cache prefix in chunk Replace suffix in chunk Never replace segments in curr chunk

22 NUS.SOC.CS5248 Ooi Wei Tsang 22 Where To Fetch From?

23 NUS.SOC.CS5248 Ooi Wei Tsang 23 Cooperative Caching AB

24 NUS.SOC.CS5248 Ooi Wei Tsang 24 Fetch from server B A Server Client 2Client 1

25 NUS.SOC.CS5248 Ooi Wei Tsang 25 Fetch from fellow proxy B A Server Client 2Client 1

26 NUS.SOC.CS5248 Ooi Wei Tsang 26 Issues How to advertise? How to choose “helper”?

27 NUS.SOC.CS5248 Ooi Wei Tsang 27 How to Advertise? Balance between network load freshness of information

28 NUS.SOC.CS5248 Ooi Wei Tsang 28 Scalable Advertisement Expanding Ring Advertisement 161 322 644 1288 TTLPERIOD

29 NUS.SOC.CS5248 Ooi Wei Tsang 29 How to Choose Helper? Consideration for Static Cache network distance (1,2,3,4) number of streams being served avoid frequent switches Build a cost function, integrating the metrics

30 NUS.SOC.CS5248 Ooi Wei Tsang 30 Cost Function Cost for retrieving a segment from node X to node Y=

31 NUS.SOC.CS5248 Ooi Wei Tsang 31 Algorithm Consider the next gap in local caches Find the next helper with minimum cost, and can fill in at least k segments in gaps

32 NUS.SOC.CS5248 Ooi Wei Tsang 32 Distributed Caching Y. Chae et. al. JSAC 2000

33 NUS.SOC.CS5248 Ooi Wei Tsang 33 Cooperative vs Distributed Cooperative caching caches independently Distributed caching caches as a team

34 NUS.SOC.CS5248 Ooi Wei Tsang 34 Cold Start B A Server new clip!

35 NUS.SOC.CS5248 Ooi Wei Tsang 35 Segment Map Local segment map Which segment I should cache? Global segment map Who is suppose to cache what?

36 NUS.SOC.CS5248 Ooi Wei Tsang 36 Cache Hit B A Server

37 NUS.SOC.CS5248 Ooi Wei Tsang 37 Cache Miss B A Server

38 NUS.SOC.CS5248 Ooi Wei Tsang 38 Distributed Caching B A Server

39 NUS.SOC.CS5248 Ooi Wei Tsang 39 Problems Who should cache what? Which segment to kick out? How to adapt segment distribution?

40 NUS.SOC.CS5248 Ooi Wei Tsang 40 Who should cache what? RCache scheme Segment video into equal size segments A proxy will cache each segment with some probability

41 NUS.SOC.CS5248 Ooi Wei Tsang 41 RCache N p proxies video of length L v divide into N s equal segments Each proxy caches each segment with a/N p probability

42 NUS.SOC.CS5248 Ooi Wei Tsang 42 Analysis Probability that whole video is cached is N s: : num of segments N p: num of proxies a/N p: prob of caching 1 segment

43 NUS.SOC.CS5248 Ooi Wei Tsang 43 RCache’s Segmentation Video is divided into segments of equal length Can we do better?

44 NUS.SOC.CS5248 Ooi Wei Tsang 44 Bimodal Distribution

45 NUS.SOC.CS5248 Ooi Wei Tsang 45 Silo segment size probability of storage

46 NUS.SOC.CS5248 Ooi Wei Tsang 46 Further Improvement segment size probability of storage

47 NUS.SOC.CS5248 Ooi Wei Tsang 47 Problems Who should cache what? Which segment to kick out? How to redistribute data?

48 NUS.SOC.CS5248 Ooi Wei Tsang 48 Segment “Popularity” For each video i For each segment j F(i,j) = Prob(i is accessed)*Prob(j is accessed)

49 NUS.SOC.CS5248 Ooi Wei Tsang 49 Rainbow Algorithm less popular

50 NUS.SOC.CS5248 Ooi Wei Tsang 50 Rainbow Algorithm Problem: Many large video – too many segments computationally expensive to sort Solution: Just approximate by quantizing popularity

51 NUS.SOC.CS5248 Ooi Wei Tsang 51 Rainbow Algorithm less popular

52 NUS.SOC.CS5248 Ooi Wei Tsang 52 Problems Who should cache what? Which segment to kick out? How to redistribute data?

53 NUS.SOC.CS5248 Ooi Wei Tsang 53 Data Redistribution When popularity changes, need to redistribute. Redistribute “on-demand” (lazy)

54 NUS.SOC.CS5248 Ooi Wei Tsang 54 Cache Token Each segment have two bits (T,C) T: I am suppose to have the segment C: I have the segment

55 NUS.SOC.CS5248 Ooi Wei Tsang 55 Data Redistribution (T=1,C=1) (T=0,C=0) (T=1,C=0) (T=0,C=1)

56 NUS.SOC.CS5248 Ooi Wei Tsang 56 Example IJ ACBD old new T=0,C=1 T=1,C=0

57 NUS.SOC.CS5248 Ooi Wei Tsang 57 Example IJ ACBD old new T=1,C=1 T=0,C=1 T=0,C=0T=1,C=0

58 NUS.SOC.CS5248 Ooi Wei Tsang 58 Example IJ ACBD old new T=1,C=1 T=0,C=0T=1,C=0 T=0,C=0

59 NUS.SOC.CS5248 Ooi Wei Tsang 59 Example IJ ACBD old new T=1,C=1 T=0,C=0T=1,C=1T=1,C=0T=0,C=0

60 NUS.SOC.CS5248 Ooi Wei Tsang 60 Quality Adaptive Caching Reza Rajaie et. al. INFOCOM 2000

61 NUS.SOC.CS5248 Ooi Wei Tsang 61 Scenario (10am) A Server Client 2

62 NUS.SOC.CS5248 Ooi Wei Tsang 62 Scenario (1am) A Server Client 2

63 NUS.SOC.CS5248 Ooi Wei Tsang 63 Problem: Cache interfere with congestion control algorithm Solution: Make cache aware of quality adaptation

64 NUS.SOC.CS5248 Ooi Wei Tsang 64 Solutions Making cache “quality-aware” Prefetch Replacement Algorithm

65 NUS.SOC.CS5248 Ooi Wei Tsang 65 Cache Miss A Server Client 2

66 NUS.SOC.CS5248 Ooi Wei Tsang 66 Cache Hit A Server Client 2 repair + prefetch

67 NUS.SOC.CS5248 Ooi Wei Tsang 67 Peeking Inside the Cache

68 NUS.SOC.CS5248 Ooi Wei Tsang 68 Cache Hit: Repair

69 NUS.SOC.CS5248 Ooi Wei Tsang 69 Cache Hit: Prefetch

70 NUS.SOC.CS5248 Ooi Wei Tsang 70 Prefetch Algorithm prefetch window playback point

71 NUS.SOC.CS5248 Ooi Wei Tsang 71 Proxy Request to Server Multiple requests (for different clients) are batched.

72 NUS.SOC.CS5248 Ooi Wei Tsang 72 Server Response Missing segments are sent in decreasing priority 1 2 34

73 NUS.SOC.CS5248 Ooi Wei Tsang 73 Server Response Send as many segments as possible until next prefetch request

74 NUS.SOC.CS5248 Ooi Wei Tsang 74 Trade-offs How far in the future should we prefetch?

75 NUS.SOC.CS5248 Ooi Wei Tsang 75 Solutions Making cache “quality-aware” Prefetch Replacement Algorithm

76 NUS.SOC.CS5248 Ooi Wei Tsang 76 Goal: converge to efficient state if a stream is popular average quality is high variation in quality is low Goal of Replacement

77 NUS.SOC.CS5248 Ooi Wei Tsang 77 The Algorithm

78 NUS.SOC.CS5248 Ooi Wei Tsang 78 Trashing and Locking

79 NUS.SOC.CS5248 Ooi Wei Tsang 79 Choosing Victim whit (weighted hit) = T play /T total Calculate whit for each layer in a stream over a popularity window

80 NUS.SOC.CS5248 Ooi Wei Tsang 80 Example WHITLock?NameLayer 5.91Nemo0 4.31Nemo1 4.00Matrix 20 3.90Matrix 21 1.10Gigli0

81 NUS.SOC.CS5248 Ooi Wei Tsang 81 Static Cache Cache segments in proxy do not changed over time Can we exploit further properties of streaming media?

82 NUS.SOC.CS5248 Ooi Wei Tsang 82 Dynamic Caching

83 NUS.SOC.CS5248 Ooi Wei Tsang 83 Motivating Scenario t = 0, R1 requests for stream M t = , R2 requests for stream M Ideally, R1 and R2 should share a multicast of M

84 NUS.SOC.CS5248 Ooi Wei Tsang 84 needs to be “patched” share with R1 from cache

85 NUS.SOC.CS5248 Ooi Wei Tsang 85 Using Dynamic Cache R2 request stream M Proxy allocate a ring buffer Cache the most recent  -seconds of M sent to R1 R2 get prefix of M from other places, and rest from proxy

86 NUS.SOC.CS5248 Ooi Wei Tsang 86 Extending to N Receivers


Download ppt "NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media."

Similar presentations


Ads by Google