Download presentation
Presentation is loading. Please wait.
Published byTheresa Kelley Watts Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.